macOS / Linux 向けの個人設定ファイル(dotfiles)を管理するリポジトリ。 Nix + make + perl でセットアップを自動化している。
dotfiles/
├── bootstrap/ # セットアップ用の perl スクリプト
├── config/ # OS ごとの設定ファイル(mac / linux)
├── .config/ # ~/.config 配下にリンクする設定(wezterm / ghostty / herdr / nix)
├── docs/ # 各種ドキュメント(docs/README.md が入り口)
├── nix/ # flake.nix(dotfiles-tools の定義)
├── makefile # セットアップ用ターゲット(make help で一覧)
└── nix-install.sh # Nix のインストールスクリプト
SSH 鍵を GitHub に登録済みの場合:
git clone git@github.com:ShotaArima/dotfiles.git ~/dotfiles
cd ~/dotfilesSSH 鍵を未設定の場合は HTTPS でも clone できます。
git clone https://github.com/ShotaArima/dotfiles.git ~/dotfiles
cd ~/dotfiles以下のコマンドが実行できれば、Nix はすでに利用可能です。
command -v nix
nix --version表示される場合は、2) Flakes の有効化 に進んでください。
- このShell Scriptを実行し、Nixをインストールしてください
bash nix-install.sh- インストール後、新しいターミナルを開き直してください。
nix --version補足:
nix: command not foundになる場合は、ターミナルを開き直すか、shell の初期化ファイルで PATH を上書きしていないか確認してください。
このリポジトリでは flake.nix を使うため、Nix の experimental features を有効にします。
- ユーザー単位で設定する場合:
mkdir -p /etc/nix
${EDITOR:-vi} /etc/nix/nix.conf- 以下を追記してください。
experimental-features = nix-command flakes- 確認します。
nix flake --help
nix develop --help補足: ユーザー単位で設定したい場合は
~/.config/nixに同じ設定を書きます。
~/.config/nix
${EDITOR:-vi} ~/.config/nix/nix.confこのリポジトリでは、make / perl / uv / gh などのセットアップに必要なツールを dotfiles-tools として定義しています。
dotfiles-tools を Nix profile に追加すると、通常の shell からこれらのコマンドを使えるようになります。
cd ~/dotfiles
git pull既存の dotfiles-tools が profile に入っている場合、同じものを何度も nix profile add すると重複することがあります。
そのため、先に既存の dotfiles-tools を削除してから追加します。
nix profile listpackages.x86_64-linux.dotfiles-tools や dotfiles-tools が表示されている場合は、Name を指定して削除します。
例:
nix profile remove nix-1複数ある場合は、まとめて削除します。
nix profile remove nix-1 nix-2 nix-3その後、dotfiles-tools を追加します。
nix profile add ./nix#dotfiles-tools追加後、通常の shell で以下が使えることを確認します。
hash -r
uv --version
make --version
perl --version
gh --versionこれで、毎回 nix develop に入らなくても、通常の shell から uv / make / perl / gh が使えるようになります。
dotfiles-tools を Nix profile に追加した後は、通常の shell で make setup を実行できます。
cd ~/dotfiles
make setupmake setup は Nix のユーザー設定もリンクします。
~/.config/nix/nix.conf -> ~/dotfiles/.config/nix/nix.conf
Nix の設定だけを適用する場合は、次を実行します。
make nixローカルの ~/dotfiles/nix/flake.nix ではなく、GitHub 上の flake を直接使う場合は以下を実行します。
nix profile add "github:ShotaArima/dotfiles?dir=nix#dotfiles-tools" --no-write-lock-file --refreshただし、すでに dotfiles-tools が profile に入っている場合は、先に削除してください。
nix profile list
nix profile remove <Name>例:
nix profile remove nix-1
nix profile add "github:ShotaArima/dotfiles?dir=nix#dotfiles-tools" --no-write-lock-file --refresh補足:
nix profile addは「既存の package を自動で置き換える」コマンドではありません。 同じdotfiles-toolsを何度も追加すると profile に重複することがあるため、更新したい場合は既存の entry を削除してから追加してください。
| 方法 | 用途 |
|---|---|
nix develop ./nix |
一時的に dotfiles 用の開発環境へ入る |
nix develop ./nix -c make setup |
開発シェルに入らずセットアップだけ実行する |
nix profile install ...#dotfiles-tools |
make や perl を普段の profile に入れて使う |
ホストの make / perl を使う |
Nix を使わず従来通り実行する |
nix profile add "github:ShotaArima/dotfiles?dir=nix#dotfiles-tools" は、GitHub Actions でビルド済みの成果物を直接取得するコマンドではありません。
このコマンドは GitHub 上の nix/flake.nix を取得し、そこに定義された dotfiles-tools を手元の Nix で評価して profile に追加します。
dotfiles-tools に含まれる uv / gnumake / perl などは、利用可能であれば Nix の binary cache から取得されます。取得できない場合はローカルでビルドされます。
GitHub Actions でビルドした成果物を配布したい場合は、別途 binary cache や artifact を用意し、nix copy などで closure を取り込む構成にします。
各ツール・OS ごとの詳細な手順は docs/README.md にまとめています。
- macOS セットアップ — クローンから
make setup、複数端末間での更新手順 - Ghostty — インストールと設定リンク
- WezTerm — 設定の構成とリンク手順
- herdr エージェントオーケストレーション — AI エージェントの自動運用