dotfiles

Nix と direnv による再現性のある開発環境。同じ定義からコンテナ環境と WSL 環境も構築する。

環境に含まれるツール、コマンド契約、用途別 profile は nix/packages.nix の 1 か所だけで定義する。ホストの開発シェル、nix build の profile、Docker イメージがすべてこれを参照するため、環境ごとに内容が食い違わない。既定環境は軽量に保ち、言語、コンテナ、HDL、Playwright は用途別に選択する。

目次

対応範囲

表の system は、Nix を実行する環境を指す。WSL とクラウド環境では、Windows や利用者のローカル環境ではなくゲスト側の system である。「対応」は本リポジトリにその入口と定義があること、「未対応」は入口または定義がないこと、「対象外」はその system で使用する機能ではないことを示す。「未検証」は対応を保証しない。CI で継続的に検証している system は x86_64-linux である。

機能・入口 x86_64-linux aarch64-linux x86_64-darwin aarch64-darwin 手順
開発シェル (nix develop) 対応 対応 対応 対応 セットアップ
固定済みの Nix 導入例 対応 未対応 未対応 未対応 Nix の導入
home-manager (make hm-*) 対応 (定義済み target のみ) 未対応 (target 未定義) 未対応 (target 未定義) 未対応 (target 未定義) ホームディレクトリの構成
Windows からの WSL bootstrap 対応 (x64 Windows) 未対応 対象外 対象外 Windows (WSL)
Docker イメージ 対応 (CI 検証済み) 未検証 対象外 対象外 コンテナ環境
WSL containers (wslc) 対応 (x64 Windows、実機検証済み、CI 未検証) 対象外 対象外 対象外 WSL containers
Claude Code / ChatGPT Codex (cloud-setup.sh) 対応 未対応 対象外 対象外 クラウド環境

開発シェルは flake.nix が 4 つの system に出力する。これとは別に、現在定義されている home-manager target はすべて x86_64-linux である。該当する target がない system では make hm-switch を実行できず、先に homeTargets の追加が必要となる。

WSL bootstrap は x64 Windows 上の x86_64-linux ゲストを対象とする。cloud-setup.sh も Ubuntu の x86_64-linux 実行環境を対象とし、ほかの CPU architecture では Nix の取得前に停止する。未対応の system でも開発シェルに対応していれば、別途 Nix を導入して nix develop を利用できる。

リポジトリ

https://github.com/sabas0ba/dotfiles