原始内容
dotfiles
chezmoi と home-manager (Nix) ベースで構築された個人用dotfiles.
- chezmoi:
- 設定ファイル(~/.zshrc, ...etc)をリポジトリ管理
- home-manager:
- Nixでグローバルに追加するツールを管理
ディレクトリ構造
.chezmoiroot # chezmoi/ をソースディレクトリとして指定
chezmoi/ # chezmoi 以下が同期される設定ファイル群
dot_agents/ # → ~/.agents
dot_claude/ # → ~/.claude
dot_zshrc.tmpl # → ~/.zshrc
private_dot_config/ # → ~/.config/
home-manager/ # home-manager 設定
shell/ # 共有シェルスクリプト (.zshrc から読み込み)
scripts/ # セットアップ・メンテナンス用スクリプト
config/ # $HOME 以下に同期はしない設定ファイル (starship, MCP)
セットアップ
bash -c "$(curl -fsLS https://raw.githubusercontent.com/d-kimuson/dotfiles/refs/heads/main/scripts/setup.sh)"
上記を実行することで
- chezmoi がインストールされ、設定が配布される
- Nix & home-manager がインストールされる
- home-manager によって各種ツールがインストールされる
の流れでセットアップが完了。
exec $SHELL -l
でシェル設定も読み込んでおく。
メンテナンス
設定を反映したい
dotfiles-apply
chezmoi apply + home-manager switch + シェル再読み込みが実行される。
nix 管理のツールをアップデートしたい
./scripts/update.sh
mise, direnv, zed-editor は stable pin、それ以外は主に unstable を利用している。
環境固有の設定を追加したい
shell/localrc.sh を追加し、環境変数等追加したい設定を記載
export TERM=xterm-256color
同期で管理できない設定ファイルの配布
internal-cli mcp deliver
internal-cli pi-agent deliver
internal-cli merge-config
internal-cli mcp deliver:config/mcp.template.jsonを各種 MCP 設定へ配布~/.pi/agent/は必要に応じて自動作成~/.claude.json~/Library/Application Support/Claude/claude_desktop_config.json~/.codex/config.toml~/.pi/agent/mcp.json
pi-agent のマシン別設定
config/pi-agent/ の共有設定と internal/src/pi-agent/model-profiles.json をベースに、git 管理しない local 設定を重ねて ~/.pi/agent/ へ配布する。
config/pi-agent/providers.local.json: このマシンで利用可能な provider をavailableProvidersで指定config/pi-agent/settings.json+ model profile +config/pi-agent/settings.local.json→~/.pi/agent/settings.jsonconfig/pi-agent/models.json+ existing target +config/pi-agent/models.local.json→~/.pi/agent/models.jsonconfig/pi-agent/agents/frontend_worker.md+designprofile +config/pi-agent/agents/frontend_worker.local.json→~/.pi/agent/agents/frontend_worker.md
{
"availableProviders": ["opencode-go", "openai-codex"]
}
local 設定は top-level key 単位でマージされ、model profile から enabledModels / defaultProvider / defaultModel / agent ごとの model / fallbackModels / thinking が展開される。
models.json は既存の ~/.pi/agent/models.json を保持しつつ、provider ごとの models を id で upsert する。dry-run では secret を含む可能性がある target 内容は表示しない。