シェル周辺と Herdr の設定ファイルを chezmoi で管理するリポジトリ。Neovim は最小の init.lua に snacks.nvim によるファイル検索・エクスプローラーを加えた軽量構成。macOS / Linux (WSL2) / Windows に対応。
| 環境 | 対応内容 |
|---|---|
| macOS | ~/.zshrc, ~/.config/zsh, ~/.config/ohmyposh, ~/.config/lazygit, ~/.config/herdr を chezmoi で展開。~/.config/nvim は init.lua のみの軽量構成に保つ |
| Linux / WSL2 | macOS と同じ Unix 系配置 |
| Windows | PowerShell profile を ~/Documents/PowerShell / ~/Documents/WindowsPowerShell に展開。Neovim 設定、lazygit、Herdr は ~/.config から標準位置へ同期 |
dot_zshrc # ~/.zshrc
dot_config/
├── exact_nvim/init.lua # ~/.config/nvim(init.lua のみを厳密に管理)
├── zsh/ # ~/.config/zsh
├── ohmyposh/ # ~/.config/ohmyposh
├── lazygit/ # ~/.config/lazygit
└── herdr/config.toml # ~/.config/herdr/config.toml
Documents/
├── PowerShell/Microsoft.PowerShell_profile.ps1
└── WindowsPowerShell/Microsoft.PowerShell_profile.ps1
run_once_after_install-tools.sh.tmpl
run_after_sync-windows-paths.ps1.tmpl
exact_nvim の exact_ は chezmoi の source state 属性です。chezmoi apply のたびに ~/.config/nvim 内の追加ファイルを削除し、Neovim を init.lua(リーダーキー、基本キーマップ、透過背景に加え、lazy.nvim + snacks.nvim によるファイル検索・エクスプローラー、which-key.nvim によるキー候補のポップアップ表示)だけの状態に保ちます。lazy.nvim が生成する lazy-lock.json は .chezmoiignore で除外しているため削除されません。
Windows では run_after_sync-windows-paths.ps1.tmpl がこの状態を %LOCALAPPDATA%\nvim にミラーし、lazygit と Herdr を %APPDATA% 配下へ同期します。
chezmoi init --apply https://github.com/e-sp9/chezmoi-dotfiles.git手元に clone 済みのリポジトリから適用する場合:
bash install.shrun_once_after_install-tools.sh.tmpl が lazygit を必要に応じて導入します。
chezmoi init --apply https://github.com/e-sp9/chezmoi-dotfiles.git手元に clone 済みのリポジトリから適用する場合:
powershell -ExecutionPolicy Bypass -File .\install.ps1Windows では以下の標準位置にも同期されます:
- Neovim:
%LOCALAPPDATA%\nvim - lazygit:
%APPDATA%\lazygit - Herdr:
%APPDATA%\herdr\config.toml - PowerShell:
~/Documents/PowerShell/Microsoft.PowerShell_profile.ps1 - Windows PowerShell:
~/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1
既存ファイルとの差分確認:
chezmoi diff反映:
chezmoi apply現在の実ファイルを source state に取り込む例:
chezmoi add ~/.zshrc
chezmoi add ~/.config/herdr/config.tomlsecretlint を使ったシークレット検出を用意しています。
npm install
npm run lint:secrets
# commit hook を入れる場合(prek または pre-commit を別途インストール)
prek install