chezmoiで管理しているdotfilesリポジトリを公開用に通常のdotfilesの形式に修正し公開。
| 役割 | ツール | 対象 |
|---|---|---|
| ユーザー設定 | chezmoi | .zshrc, ~/.config/*, .hammerspoon/, .tmux.conf, .vimrc |
| CLI パッケージ | home-manager | nix-config/home.nix (macOS / Linux 共通) |
| macOS システム設定 | nix-darwin | nix-config/darwin.nix (Homebrew cask, launchd, Touch ID sudo) |
| GUI アプリ (macOS) | Homebrew Cask | nix-config/darwin.nix の homebrew.casks で宣言 |
Nix packages は
home.nixで一元管理され、macOS / Linux で同じリストが共有されます。 macOS では nix-darwin が home-manager を取り込む形で、Linux では standalone home-manager として適用できます。
# 1. Nix を導入 (Determinate Systems Nix Installer)
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
# 2. このリポを clone
git clone https://github.com/Tiger-0512/dotfiles.git ~/dotfiles
cd ~/dotfiles/nix-config
# 3. nix-darwin を初回 bootstrap (sudo 必要、--impure は optional な社内 import を有効にするため)
sudo nix run nix-darwin -- switch --flake .#default --impure
# 4. 以後の更新
darwin-rebuild switch --flake .#default --impure# 1. Nix を導入
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
# 2. このリポを clone
git clone https://github.com/Tiger-0512/dotfiles.git ~/dotfiles
cd ~/dotfiles/nix-config
# 3. home-manager で初回 bootstrap
# - `switch` を使う (`init --switch` は flake の homeConfigurations を
# 無視してテンプレート home.nix を当ててしまうため NG)
# - `--impure` は flake.nix の `builtins.getEnv "USER"` のため必要
# - `NIXPKGS_ALLOW_UNFREE=1` は kiro-cli (unfree) を入れるため必要
NIXPKGS_ALLOW_UNFREE=1 nix run --impure home-manager/master -- \
switch --flake .#defaultLinux では nix-darwin を使わないので、docker 等の system-level サービスが必要な場合は distro 側 (apt / dnf / systemd) で別途 install する。
flake.lock で全 input (nixpkgs / nix-darwin / home-manager) が pin されているので、新しい版に上げたい時は lock を更新して再適用する。
cd ~/dotfiles/nix-config
# 全 input をまとめて更新
nix flake update
# diff 確認
git diff flake.lock
# macOS
darwin-rebuild switch --flake .#default --impure
# Linux
NIXPKGS_ALLOW_UNFREE=1 nix run --impure home-manager/master -- \
switch --flake .#default特定 input だけ更新する場合は nix flake lock --update-input nixpkgs(など)。
- Touch ID for sudo は
darwin.nixのsecurity.pam.services.sudo_local.touchIdAuth = trueで有効化済み (macOS のみ) - Determinate Systems のインストーラ経由で Nix を入れているため、
darwin.nixでnix.enable = falseを設定し nix daemon の管理は Determinate 側に任せている flake.lockが置かれているのでバージョン固定された再現ビルドが可能home.nixにはcommonPackages/darwinOnlyPackages/linuxOnlyPackagesの分岐があり、colima/docker系は macOS のみ--impureはchezmoi-internal/darwin-internal.nix(ローカル管理) を条件付き import するため。該当ファイルがないマシンでは--impureを付けても挙動に影響しない
| ツール | カテゴリ | 設定ファイル |
|---|---|---|
| Zsh | シェル | .zshrc |
| Sheldon | Zshプラグインマネージャ | .config/sheldon/plugins.toml |
| Starship | プロンプト | .config/starship.toml |
| Neovim | エディタ | .config/nvim/ |
| Vim | エディタ | .vimrc |
| Alacritty | ターミナル | .config/alacritty/ |
| Ghostty | ターミナル | .config/ghostty/config |
| WezTerm | ターミナル | .config/wezterm/ |
| tmux | マルチプレクサ | .tmux.conf |
| Zellij | マルチプレクサ | .config/zellij/config.kdl |
| Yazi | ファイルマネージャ | .config/yazi/ |
| lf | ファイルマネージャ | .config/lf/ |
| Git | Git | .config/git/ |
| LazyGit | Git UI | .config/lazygit/config.yml |
| GitUI | Git UI | .config/gitui/ |
| Hammerspoon | macOS自動化 | .hammerspoon/ |
※ Alacritty, tmux, Zellij, lf, GitUIは現在利用していないため古い設定になっている可能性があります。
- zsh-defer - 遅延読み込み
- zsh-syntax-highlighting - シンタックスハイライト
- zsh-autosuggestions - 自動補完候補
- zsh-completions - 追加の補完定義
| キー | 機能 |
|---|---|
Ctrl+f |
Yaziでファイル操作 |
Ctrl+g Ctrl+g |
LazyGit起動 |
Ctrl+g Ctrl+f |
zoxideでディレクトリ移動 (fzf) |
コミットメッセージはConventional Commitsに基づくテンプレートを使用。
Luaベースの設定。主な機能:
- Leader:
, - カラースキーム: hybrid
- プラグイン管理: lazy.nvim
ターミナルエミュレータとしてWezTermをメインで使用。Ghosttyの設定も残している。
- テーマ: Catppuccin Mocha
- 背景透過: 85%(ブラー半径20)
- フォント: FantasqueSansM Nerd Font Mono + Hiragino Kaku Gothic ProN
| キー | 機能 |
|---|---|
Ctrl+Shift+' |
右に分割 |
Ctrl+Shift+; |
下に分割 |
Ctrl+Shift+h/j/k/l |
ペイン移動 (左/下/上/右) |
Ctrl+Shift+Cmd+h/j/k/l |
ペインリサイズ |
Ctrl+Shift+u/i |
スクロール (下/上) |
Ctrl+Shift+t |
新規タブ |
Ctrl+Shift+,/. |
タブ移動 (前/次) |
Ctrl+Shift+w |
新規ウィンドウ |
macOS用の自動化ツール。ウィンドウ管理とキーリマップに使用。
Alt+Shift+Ctrl をモディファイアキーとして使用。
| キー | 機能 |
|---|---|
Alt+Shift+Ctrl+h |
フォーカスしているウインドウを左半分に移動 |
Alt+Shift+Ctrl+l |
フォーカスしているウインドウを右半分に移動 |
Alt+Shift+Ctrl+k |
フォーカスしているウインドウを上半分に移動 |
Alt+Shift+Ctrl+j |
フォーカスしているウインドウを下半分に移動 |
Alt+Shift+Ctrl+b |
フォーカスしているウインドウを右下 (60%幅) に移動 |
Alt+Shift+Ctrl+f |
フォーカスしているウインドウをフルスクリーンに |
Vimライクなカーソル移動をシステム全体で有効化。
| キー | 機能 |
|---|---|
Ctrl+h/j/k/l |
カーソル移動 (左/下/上/右) |
Ctrl+i |
行頭へ移動 |
Ctrl+a |
行末へ移動 |
Ctrl+w |
単語選択 (右方向) |
Ctrl+Shift+w |
単語選択 (左方向) |
Optionキー2回押し: ターミナル (WezTerm/Ghostty) を起動/フォーカス