Blogに戻る

dotfiles 計画

#開発ツール #作業効率化
作成日: 2024年2月12日
更新日: 2025年8月18日
import LinkCard from '@/components/LinkCard.astro';

コンセプト

新しいマシンでもコマンド一発でいつもの環境を再現したい。理想としてはこんな感じ:

最も条件を満たすのは Nix かと思いますがガベコレの運用コストが高いので断念。
実装の工夫で冪等性を満たして、宣言的で再現可能にしてみました。

こだわりポイント

環境を素早くセットアップする為によく作るあれです。理想の dotfiles 管理システムは次のようなものです。

思想を大きく 3 種類に分けると

#general
これらを総合的に見たとき導入コストを増やして辛さがスケールしない Bare Git の思想が最も良いと考えてます。

My best tool: yadm

これまで shellscript (GNU Stow like) → Ansible → chezmoi → yadm と使ってきました。

冪等性の担保に惚れて Ansible 使ってたけど、細かいロジックを組めなかったり、欲しい role がなくて結局シェルを書いたり辛さが見えて、技術を扱っている僕らにとって冪等性は常識だから僕らが担保すればいいじゃんね〜と思いました。

chezmoi は上に書いた通り複雑になるのでやめました。あとファイル名を . → dot_ と置換されるのもしっくりこない (消した方がまし) 。

Nix はストレージの使用量がえぐくて定期的にガベコレしないといけないので辛い

yadm は Bare Git の思想の全ての欠点を解決させたツールです。1Password の連携がなかったので自分で書きました。初期導入でマージのシステムがあるともっとうれしい。あと VSCode は git 管理下のワークスペース全体を探索し始めるのでそこには少し注意が必要かも。

ただこれからは AI と対話して環境を整えてもらって chezmoi で管理してもらうみたいな形になるのかな。たとえば「Web 開発用に M2 MacBook をセットアップします。Neovim、fish、Alacritty を使用します。職場用と個人用の SSH キーが必要で、GitHub トークンは 1Password から取得してください。」みたいなプロンプト投げて理想的な環境を整えることができるようになると思う。そうなると dotfiles 自体必要なくなる未来がすぐそこかも〜

Tools

macOS Specific: