dotfilesリポジトリとchezmoiで異なるシステム間での設定ファイルを管理する

k-ito-cat/dotfiles
個人用のdotfiles
概要
dotfiles は、ローカルマシンの設定ファイルを Git で管理・共有する取り組み。 PowerShell 用だったり Linux 用だったりと分散しがちな設定を一元化し、異なるマシン・OS間で同じ開発体験を得ることを目的とする。
完全個人用で作成していくことにしたので、汎用化は追求しない。 macOS と Windows の両環境あるので、管理対象とする。
dotfilesで検索するといろんなスター数の多いものがあるからそれを利用するのもあり。 Github:https://github.com/search?q=dotfiles&type=repositories
構築
※ 構築手順については公式ドキュメントを参照すべきなので軽く載せる程度にする
dotfilesを作るにあたって大事なツールであるchezmoi
を使う。
役割は、chezmoiディレクトリでconfig系のファイルをgit管理すること。
chezmoiディレクトリに元のconfigファイルなどをコマンドでコピー、編集ができたり、切り出したファイルをincluedしたりできるのでgit管理したくない情報を別ファイルに保持してgitignoreしておくなんてこともできる。
インストール(PowerShell)
iex "&{$(irm 'https://get.chezmoi.io/ps1')} -b '$HOME\bin'"
found version 2.62.4 for latest/windows/amd64
installed C:\Users\{user_name}\bin\chezmoi.exe
Path 確認と設定
$env:PATH -split ';' | Where-Object { $_ -match "{user_name}\\bin" }
何も返らない場合は未設定
$env:Path += ";$HOME\bin"
[Environment]::SetEnvironmentVariable("Path", $env:Path, "User")
PowerShell を再起動後:
chezmoi --version
chezmoi version 2.62.4, commit ..., built at ...
初期化
chezmoi init
リポジトリが空または未設定の場合は初期化処理が走る
すでにあるリポジトリで初期化したい場合はinitの後にrepository名を入れる
init後はgitも初期化された状態になっている
ファイルの追加と適用
chezmoi add $HOME\.gitconfig
既存の .gitconfig 内容がコピーされ、編集用テンプレートが生成される
chezmoi edit $HOME\.gitconfig
エディタが開いてconfigの修正が可能
chezmoi apply
管理下の変更をホームディレクトリに反映
chezmoi 設定ファイル
設定ファイルは以下に配置:
~/.config/chezmoi/chezmoi.toml
内容:
[edit]
command = "code" # cursorにするとcursorで立ち上がる
args = ["--wait"]
dotfiles を使う利点
1. バックアップと復元が簡単
- iCloudやTimeMachineに依存したくない人にとってはいいかもしれない程度
2. 設定の履歴を git で管理できる
.zshrc
,.gitconfig
などの変更履歴を追跡可能- ありがちな「前どうしてたっけ…」を防げる
3. 自分の環境構成をドキュメント化できる
- 異なるOS、マシン間で統一できるので管理しやすい
- なにより自分好みの設定が可視化されるのが楽しい