chezmoi で管理している macOS 用の dotfiles です。
- macOS
- Homebrew(未インストールの場合は install.sh が自動でインストール)
- GPG キー(新しい GPG キーを生成する - GitHub Docs)
bash <(curl -fsSL https://raw.githubusercontent.com/faruryo/dotfiles/main/install.sh)実行すると以下を順番に行います:
- Homebrew のインストール(未インストール時)
- chezmoi のインストール
~/dotfilesにリポジトリをクローンchezmoi applyを実行
初回実行時に以下を対話的に入力します(2回目以降は入力不要):
- Git コミット著者名
- Git メールアドレス
- GPG 署名キー ID
gh auth login
brew bundle install --file="$HOME/dotfiles/Brewfile"2 行目で Brewfile にあるツールをまとめてインストールします。
| ツール | 役割 | 起動 |
|---|---|---|
| Ghostty | ターミナルエミュレータ | アプリから起動 |
| Zellij | ターミナルマルチプレクサ(tmux 代替) | zellij |
| Starship | プロンプト(自動ロード) | — |
| Atuin | シェル履歴検索 | Ctrl+R |
| Zoxide | ディレクトリジャンプ(cd 代替) | cd <部分名> |
| fzf-tab | zsh 補完のファジー化(自動ロード) | Tab |
| ツール | 役割 | 起動 |
|---|---|---|
| Yazi | TUI ファイルマネージャー | yazi |
| Lazygit | TUI Git クライアント | lazygit |
| Worktrunk | Git worktree 管理 | wt |
| fzf | ファジーファインダー | Ctrl+T(ファイル)/ **Tab |
| ツール | 役割 | 主なコマンド |
|---|---|---|
| mise | ランタイムバージョン管理 | mise use go@latest |
| direnv | ディレクトリ別環境変数 | .envrc を置くだけ |
| Volta | Node.js バージョン管理 | volta install node |
画面下部にキーバインドが常時表示されるため、覚える必要は最小限です。
Ctrl+p → 新規ペイン Ctrl+p → n(新規)/ x(閉じる)
Ctrl+t → タブ操作 Ctrl+n(新規タブ)
Ctrl+p → f フローティングペイン(一時的なウィンドウ)
Alt+←→ → ペイン間移動
Alt+d → 開発用タブ(2カラム: Git/Claude)
Alt+y → フローティング Yazi(ファイラ)
Alt+g → フローティング Lazygit
Alt+[ → レイアウト切り替え(2カラム/集中/全画面)
atuin stats
atuin search <キーワード>Ctrl+Rで履歴をインタラクティブ検索できます。atuin statsでよく使うコマンドの統計を見られます。
AIエージェント向けのブラウザ操作ライブラリです。
# 専用の仮想環境が自動構築されています
~/.browser-use-env/bin/python your_agent.py~/.browser-use-envにライブラリと専用の Chromium がインストールされています。
Playwright をコマンドラインから操作するための公式ツールです。
playwright-cli --help
playwright-cli open https://example.comvoltaを介してグローバルにインストールされています。
cd proj
cd
zicd projでprojを含む直近のディレクトリに移動します。cdでzi相当のインタラクティブ選択を開けます。ziで候補を選んでジャンプできます。
yaziyaziで起動します。終了時に現在ディレクトリへcdされます。- 移動は
h/j/k/l、開くにはEnter、検索は/、終了はqです。 .で隠しファイルの表示切り替え、yとpでコピーとペースト、Spaceで複数選択できます。
zsh から yazi を開いて終了時に自動 cd させる:
function y() {
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
yazi "$@" --cwd-file="$tmp"
if [ -s "$tmp" ]; then cd "$(cat "$tmp")"; fi
rm -f "$tmp"
}この関数は home/dot_config/zsh/dot_zshrc に追加済みです。
lazygitプロジェクトルートで実行すると起動します。
Space # ファイルをステージ / アンステージ
c # コミット
P # プッシュ
p # プル
b # ブランチ操作
? # ヘルプ
Claude Code がコード変更した後の差分確認・コミットに最適です。
wt start feature/my-task
wt list
wt remove feature/my-taskwt start <branch>で作業用 worktree を作成してその場で移動できます。wt listで worktree 一覧を確認できます。wt remove <branch>で不要な worktree を片付けられます。- zsh では shell integration を自動ロードしているため、
wt実行後のディレクトリ移動もそのまま反映されます。
cd <Tab>
git checkout <Tab>
kill <Tab>cd <Tab>でディレクトリをファジー選択します。git checkout <Tab>でブランチをファジー選択します。kill <Tab>でプロセスをファジー選択します。
コンテキストに応じて自動表示:
~/proj/myapp main [↑2] rs 1.89.0 ⎈ local
❯
main [↑2]— ブランチ名と git 状態rs 1.89.0— 言語バージョン(go / rs / py / node / tf など)⎈ local— kubectl コンテキスト☁️— gcloud アカウント3s— 3 秒以上かかったコマンドの実行時間
エージェントが大量のファイルを変更した後に差分を精査する:
lazygitClaude Code で変更を入れたあとに lazygit を開き、差分を確認してからステージとコミットを進めます。
Zellij のフローティングペインで Yazi を開いてディレクトリツリーを俯瞰:
Ctrl+p → f # フローティングペインを開く
yazi # Yazi 起動
q # Yazi 終了 → ペインも閉じる
またはショートカットを使用:
Alt+y # 一撃でフローティング Yazi を起動
コマンド履歴から再実行:
Ctrl+R → 検索ワード → Enter # 過去のコマンドを再実行
↑/↓ # 候補を絞り込み
プロジェクトごとに自動でランタイムを切り替える:
echo "go 1.24.5" > .tool-versions
echo "export GOFLAGS=-mod=vendor" > .envrc
direnv allow.tool-versionsを置くとmiseがランタイムを自動認識します。direnv allowを実行すると、以後はディレクトリに入るだけで Go のバージョンと環境変数が自動で反映されます。
chezmoi apply
chezmoi diff
chezmoi edit ~/.zshenv
chezmoi update
chezmoi status
chezmoi re-add ~/.config/starship.tomlchezmoi applyで変更をホームディレクトリに適用します。chezmoi diffで適用前の差分を確認できます。chezmoi edit ~/.zshenvでソースを編集し、そのままapplyまで進められます。chezmoi updateでgit pullとapplyをまとめて実行できます。chezmoi statusで未適用の変更を確認できます。chezmoi re-add ~/.config/starship.tomlでホーム側の直接編集をソースへ取り込めます。
複数のプロジェクトをまとめて VS Code で開くために、zsh 関数 code-projects を用意しています。
cp ~/.config/zsh/.vscode-projects.example ~/.config/zsh/.vscode-projects.local~/.config/zsh/.vscode-projects.local を編集する:
- 1 行に 1 ディレクトリを書く
- 空行と
#で始まる行は無視される $HOMEと~を使える
code-projects各ディレクトリに .envrc があり direnv が使える場合は direnv exec 経由で起動し、それ以外は通常の code 起動になります。
コミット時に gpg: signing failed: No such file or directory が出る場合:
echo "pinentry-program $(which pinentry-mac)" >> ~/.gnupg/gpg-agent.conf
gpgconf --kill gpg-agent