https://github.com/toshiki670/dotfiles
Dotfiles
https://github.com/toshiki670/dotfiles
archlinux bash dotfiles nvim powershell tmux vim windows zsh
Last synced: about 1 month ago
JSON representation
Dotfiles
- Host: GitHub
- URL: https://github.com/toshiki670/dotfiles
- Owner: toshiki670
- License: mit
- Created: 2016-08-03T02:16:31.000Z (almost 10 years ago)
- Default Branch: main
- Last Pushed: 2026-04-05T10:25:50.000Z (3 months ago)
- Last Synced: 2026-04-05T12:25:00.150Z (3 months ago)
- Topics: archlinux, bash, dotfiles, nvim, powershell, tmux, vim, windows, zsh
- Language: Shell
- Homepage:
- Size: 3.85 MB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Overview
- Simplification of environment construction
- Unification of environment across multiple platforms
This repository is managed with [chezmoi](https://www.chezmoi.io/). **Fish** is the shell (`~/.config/fish/conf.d/`), with **[Starship](https://starship.rs/)** as the interactive prompt. Also included: **Neovim**, **Git** (split config + delta), **mise**, optional **Ghostty** / **Zellij** configs, and scripts under `bin/`.
# Prerequisites
## Required Tools
These cover the Fish-first workflow and shared tooling (Git, editor, mise, CLI utilities).
```bash
brew install git gh fish nvim mise eza bat fd ripgrep starship zoxide fzf git-delta
```
### Required Homebrew tool descriptions
- `git` - Version control system
- `gh` - GitHub CLI (used by shell prompts and aliases)
- `fish` - Fish shell (**primary shell** for this dotfiles set)
- `nvim` - Neovim text editor
- `mise` - Runtime version manager
- `eza` - Modern replacement for ls
- `bat` - Modern replacement for cat with syntax highlighting
- `fd` - Fast and user-friendly alternative to find
- `ripgrep` - Fast search tool (rg command)
- `starship` - Minimal, fast prompt ([starship.rs](https://starship.rs/)); Fish loads it from `config.fish`, config at `~/.config/starship.toml`
- `zoxide` - Smarter cd command that learns your habits
- `fzf` - Command-line fuzzy finder (used with zoxide and Fish key bindings)
- `git-delta` - Syntax-highlighting pager for git, diff, and grep output
## Optional Tools
```bash
brew install ffmpeg marp-cli gitui ghostty zellij smartmontools rtk
```
### Optional Homebrew tool descriptions
- `ffmpeg` - Multimedia framework (required for video/audio processing)
- `marp-cli` - Markdown to PDF/PowerPoint converter
- `gitui` - Terminal UI for git commands
- `ghostty` - Terminal emulator; config lives under `~/.config/ghostty/` (see [Configuration](#configuration))
- `zellij` - Terminal multiplexer; config under `~/.config/zellij/`
- `smartmontools` - S.M.A.R.T. disk health monitoring (`smartctl`)
- `rtk` - CLI proxy that reduces LLM token usage by 60–90% ([rtk-ai/rtk](https://github.com/rtk-ai/rtk)); after install, run `rtk init -g` to configure Claude Code hooks
After installing `rtk`, initialize the Claude Code hook:
```bash
rtk init -g
```
# Installation
## Using chezmoi (Recommended)
### 1. Install chezmoi
```bash
brew install chezmoi
```
### 2. Initialize with this repository
```bash
chezmoi init --ssh toshiki670
```
### 3. Preview changes (optional)
```bash
chezmoi diff
```
### 4. Apply the dotfiles
```bash
chezmoi apply
```
### 5. Restart Shell
```bash
exec fish -l
```
### 6. Set login shell (recommended for Fish)
```bash
chsh -s "$(which fish)"
```
# Configuration
## Shell (Fish)
Modular config under `~/.config/fish/conf.d/`. Interactive sessions run `starship init fish` from `config.fish`; prompt styling lives in `~/.config/starship.toml`.
## Environment Variables (Using Mise)
Create global configuration file: `~/.config/mise/config.toml`
```toml
[env]
# yt-dlp browser selection
# Options: "chrome:Default", "chrome:Profile 1", "firefox", "safari", "edge"
YT_BROWSER = "chrome:Default"
```
**Note:** To check your Chrome profile name, visit `chrome://version/` and look for the "Profile Path".
Apply changes:
```bash
exec $SHELL -l
```
## Ghostty (macOS)
On macOS, `chezmoi apply` runs a hook that symlinks Ghostty’s expected config path to `~/.config/ghostty/config`. If you use Ghostty, install it separately (see [Optional Tools](#optional-tools)). Ghostty works well as the terminal for a Fish-centric setup.
## Platform-Specific Notes
### macOS
- Homebrew configurations will be applied automatically
- Custom binaries in `bin/` will be added to PATH
- Ghostty config symlink is set up as described above
# Development
See [CONTRIBUTING.md](CONTRIBUTING.md) for lint, test, and release instructions. To trigger a release directly: [Run Release Workflow](https://github.com/toshiki670/dotfiles/actions/workflows/release.yml).