chezmoi + nix-darwin + Home Manager で管理している個人のdotfilesです。
- パッケージ管理: nix-darwin + Home Manager
- dotfiles管理: chezmoi(段階的にHome Managerへ移行予定)
- 対象OS: macOS (Apple Silicon)
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- installインストール後、ターミナルを再起動する。
git clone https://github.com/KOU050223/dotfiles.git ~/.local/share/chezmoisudo nix run nix-darwin -- switch --flake ~/.local/share/chezmoi/nix#uozumikouhei-mac初回は10〜20分かかります。完了後、新しいターミナルを開く。
chezmoi applynpm install -g firebase-tools ccusage cloudflare-bulk-delete @qiita/qiita-cli cz-git czg @anthropic-ai/claude-codecat ~/.local/share/chezmoi/vscode-extensions.txt | xargs -I {} code --install-extension {}今回追加したエイリアスを使用して、簡単にアップデートを行えます。
- 全パッケージ・システムの更新 (flake.lockの更新を含む)
nix-up
- 設定ファイルの変更を反映するだけの場合
nix-sw
1. パッケージ名を調べる
nix-search パッケージ名または search.nixos.org で検索。
2. 編集と反映
| 追加したいもの | 編集するファイル | 反映コマンド |
|---|---|---|
| CLIツール(go, jq等) | nix/modules/home.nix |
nix-sw |
| macOS GUIアプリ | nix/modules/darwin.nix |
nix-sw |
| ドットファイル (.zshrc等) | cze ~/.zshrc |
cza |
3. 特定のツール(例:gh)だけをアップデートしたい場合
Nixの性質上、個別にバージョンを指定するのではなく、nixpkgs 全体を更新するのが一般的です。
cd ~/.local/share/chezmoi/nix
nix flake update nixpkgs
nix-sw- 編集:
cze ~/.zshrc - 反映:
cza - ローカルの変更をリポジトリに取り込む:
chezmoi add <ファイルパス> - GitHubに保存:
chezmoi cd && git add -A && git commit -m "update" && git push
Caution
.agents/ などのディレクトリが外部ツールによって書き換えられ、cza 時に警告が出た場合は、まず chezmoi add ~/.agents を実行して「ローカルの状態を正」としてリポジトリに同期してから apply (overwrite) してください。
| ファイル | 説明 |
|---|---|
nix/flake.nix |
nixpkgs・nix-darwin・Home Manager のエントリ |
nix/modules/darwin.nix |
nix-darwin システム設定(Dock, Finder, Homebrew Cask等) |
nix/modules/home.nix |
Home Manager 設定(パッケージ一覧・zshrc・gitconfig等) |
| ファイル | 説明 |
|---|---|
.zshrc |
Zsh 設定 |
.bashrc |
Bash 設定 |
.gitconfig |
Git グローバル設定 |
.config/starship.toml |
Starship プロンプト設定 |
.config/ghostty/ |
Ghostty ターミナル設定 |
.config/gh/ |
GitHub CLI 設定 |
.claude/ |
Claude Code グローバル設定・コマンド・スキル |
.agents/ |
Claude エージェントスキル実体 |
Library/Application Support/Code/User/settings.json |
VSCode 設定 |
Library/Application Support/Code/User/keybindings.json |
VSCode キーバインド |
vscode-extensions.txt |
VSCode 拡張機能一覧 |
~/.local/share/chezmoi/ (= ~/workspace/dotfiles-nix はnix/へのシンボリックリンク)
├── nix/
│ ├── flake.nix
│ ├── flake.lock
│ └── modules/
│ ├── darwin.nix
│ └── home.nix
├── dot_zshrc
├── dot_gitconfig
├── dot_config/
│ ├── starship.toml
│ └── ghostty/
├── dot_claude/
├── dot_agents/
├── dot_vscode/
├── private_Library/
└── vscode-extensions.txt
chezmoi のファイル名プレフィックスルール:
| プレフィックス | 意味 |
|---|---|
dot_ |
.(ドット)に変換される |
executable_ |
実行権限が付与される |
private_ |
パーミッション 600 で作成される |