個人用の dotfiles 設定。chezmoi で管理。
# chezmoi をインストール
brew install chezmoi
# dotfiles を取り込み
chezmoi init https://github.com/dkajiwara/dotfiles.git
# 設定を適用
chezmoi apply
部分管理する設定(Claude / Cursor)
~/.claude/settings.json と ~/.config/cursor/cli-config.json は、エージェント自身が実行時に書き込むキーがあるため、ファイル全体ではなく一部だけを modify_ スクリプト で管理しています(chezmoi apply のたびに実機の内容を標準入力で受け取り、管理対象のキーだけを上書きして出力)。
Claude : permissions・hooks・statusLine・extraKnownMarketplaces 等は settings.base.json の内容で常に上書き。次のキーだけ扱いが異なる
model・advisorModel(/config で書き換わる)は実機の値のまま素通り。model は実機に値が無いときだけ base の値を初期値として使用
enabledPlugins は素通りではなくマージ。どのマシンにも入れておきたいプラグインだけを base に記録し(判断基準は「追加セットアップが要らない skills/agents/commands のみ」。認証や外部バイナリが要る figma・chrome-devtools-mcp・各 LSP は入れない)、同じキーが実機にあればそちらを優先
よって新しいマシンでは共通セットが自動で入り、/plugin で無効化した状態も apply で巻き戻らない。ただしアンインストールしてキーごと消えたものは base から再び入るため、共通セットから恒久的に外すときは dot_claude/settings.base.json を編集する
Cursor : version・editor(Cursor 自身が書き込む)は実機の値のまま素通りし、それ以外(permissions・statusLine・notifications・attribution)を管理
modify_ を選んでいるのは、chezmoi apply のたびに実機の現在値とマージでき、管理対象キーの外部変更もきちんと検知されるため
Ghostty - ターミナルエミュレータ(フォント: Moralerspace Neon)
Zsh + Starship + Sheldon (プラグイン管理)+ carapace (補完)
herdr - AI コーディングエージェント向けターミナルワークスペースマネージャー
Kanagawa テーマ、prefix キー Ctrl + a
[ui.toast](delivery = "terminal")で、バックグラウンドのエージェントが完了・入力待ちになったときに Ghostty (desktop-notifications = true) 経由でデスクトップ通知。SSH 越しの herdr セッションでも有効。herdr 管理外のターミナルでは通知は出ない
Claude Code・Cursor Agent CLI 側の完了・確認待ち通知はこの [ui.toast] が担当(各エージェント側の hook は使わない)
mise / pyenv / tfenv / direnv / zoxide - .zshrc で有効化(バージョン固定などの個別設定はこのリポジトリでは管理していない)
ghq (~/Documents/workspace に統一管理)+ lazygit (Git TUI)+ tig
fzf (ファジーファインダー)/ fd / rg (ripgrep) / bat
Neovim - Mason + nvim-lspconfig(LSP: lua_ls, ts_ls)
Kanagawa テーマ、bufferline.nvim、nvim-tree、dropbar.nvim、telescope.nvim、lualine.nvim、Treesitter、dashboard-nvim
Claude Code - Anthropic の CLI アシスタント。herdr でセッション永続化、カスタム statusLine
Cursor Agent CLI - Cursor のターミナル Agent(agent コマンド)。Claude Code と同じ表示ロジックの statusLine、Cursor 専用の MCP 設定(~/.claude/.mcp.json は chezmoi 管理外の別リポジトリへのシンボリックリンクで、自動連携はない)
主なディレクトリ単位の管理対象です。個別に注意が必要なもの(部分管理・シンボリックリンクなど)のみ個別記載しています。
~/.zshrc, ~/.gitconfig, ~/.gitignore_global, ~/.ideavimrc, ~/.tigrc, ~/.stCommitMsg
~/.config/herdr/, ~/.config/ghostty/, ~/.config/starship.toml, ~/.config/sheldon/, ~/.config/lazygit/
~/.config/nvim/ - Neovim 設定(init.lua、config/options・keymaps、plugins/ui・editor・coding・lsp・init)
~/.claude/CLAUDE.md, ~/.claude/statusline-command.sh
~/.claude/settings.json - modify_(管理方針 参照)
~/.cursor/statusline-command.sh, ~/.cursor/mcp.json
~/.config/cursor/cli-config.json - modify_(管理方針 参照)
キー
機能
prefix + "
水平分割
prefix + %
垂直分割
prefix + k / prefix + j
ワークスペース移動(上/下)
Ctrl + h/j/k/l
ペイン移動(左/下/上/右)
prefix + g
lazygit を popup で起動
prefix + t
scratch shell を popup で起動
<leader> キー = Space
キー
機能
<C-n>
ファイルツリー 表示/非表示
<CR> / l
ファイルを現在ウィンドウで開く
<Tab>
ファイルをプレビュー(tree フォーカス維持)
h
ディレクトリを閉じる
キー
機能
<Tab>
次のバッファへ
<S-Tab>
前のバッファへ
<leader>bd
現在のバッファを閉じる
キー
機能
<leader>;
ドロップダウンでシンボル選択
[;
現在のコンテキストの先頭へ
];
次のコンテキストへ
キー
機能
<leader>ff
ファイル検索
<leader>fr
最近開いたファイル
<leader>fg
テキスト全文検索(Live Grep)
キー
機能
jj
Insert → Normal モード
コマンド
機能
gc
ghq リポジトリを fzf で選択して cd
gg <URL>
ghq get(リポジトリをクローン)
agent -c
Cursor Agent CLI を --continue 付きで起動(claude -c 相当)
cmini2 [dir]
macmini2.local に SSH 接続し、指定ディレクトリで Claude Code を起動(herdr へのエージェント状態報告付き)
wt
git worktree を fzf で選択して cd
キー
動作
Ctrl + j
下に移動
Ctrl + k
上に移動
Ctrl + d
半ページ下
Ctrl + u
半ページ上
# 設定ファイルを編集
chezmoi edit ~ /.zshrc
# 変更を適用
chezmoi apply
# リポジトリに反映
cd ~ /.local/share/chezmoi
git add .
git commit -m " feat(zsh): add wt for switching git worktrees"
git push
コミットメッセージは Conventional Commits(type(scope): subject)。subject は英語で、変更した理由や背景は本文に書きます。