Skip to content

feat: nix-darwin 導入の土台を追加する#492

Merged
rito528 merged 1 commit into
mainfrom
feat/nix-darwin-foundation
Jul 22, 2026
Merged

feat: nix-darwin 導入の土台を追加する#492
rito528 merged 1 commit into
mainfrom
feat/nix-darwin-foundation

Conversation

@rito528

@rito528 rito528 commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • macOS 対応を home-manager 単独案から nix-darwin 導入案に変更(会社管理・プリインストール済みソフトウェアには手を出さず、宣言したものだけを管理する nix-darwin の性質を踏まえた判断)
  • nix-darwin input を追加し、mkHomeConfig と同じ引数構成 (system/username/homeDirectory/identity/profile) の mkDarwinConfig を新設。darwinSystem + home-manager.darwinModules.home-manager を組み合わせ、既存の home.nix/modules/*.nix をそのまま Linux・macOS 共通のユーザー設定として再利用する
  • modules/darwin/default.nix を新設(最小限): system.stateVersionnix.enable = falsehomebrewenable = false, onActivation.cleanup = "none")
  • 評価専用だった homeConfigurations.testuser-darwin(PR#490 で追加、home-manager 単独)を廃止し、darwinConfigurations.testuser-darwin(nix-darwin 経由)に一本化
  • CI (nix.yaml) の darwin 評価ステップを darwinConfigurations 経由に更新

このPRは土台のみ。実際の業務 Mac の darwinMachines エントリ追加・Homebrew の有効化・taps/brews/casks の選定・システム設定の追加は行わない。

実機入手後にやること

  1. flake.nixdarwinMachines に実エントリを追加する(username/homeDirectory/identity/profile を実機の値に書き換えるだけ)
  2. 実機の nix インストール方法(Determinate installer など)を確認し、modules/darwin/default.nixnix.enable をその方法に合わせて調整する
  3. darwin-rebuild switch --flake .#<name> を実行し、実際にビルド・適用できることを確認する(今回のPRは評価レベルの確認までで、実ビルドは未検証)
  4. ビルド時に modules/actrun.nix / modules/git-wt.nix(Linux バイナリ直指定)や bubblewrap(Linux 専用パッケージ)が失敗する可能性が高いので、Darwin 対応する
  5. Homebrew を使う場合は modules/darwin/default.nixhomebrew.enable = true にし、taps/brews/casks を定義する(onActivation.cleanup"none" のまま維持し、宣言外のソフトウェアを消さないようにする)
  6. profile = "work" で実際に何を除外するかを決め、modules/packages.nix 等で出し分けを実装する

Test plan

  • nix run nixpkgs#nixfmt -- --check flake.nix modules/darwin/default.nix
  • nix flake check .(既存 Linux 側が壊れていないこと)
  • nix eval .#darwinConfigurations.testuser-darwin.config.home-manager.users.testuser.home.username"testuser"
  • nix eval .#darwinConfigurations.testuser-darwin.config.system.primaryUser"testuser"
  • nix eval .#darwinConfigurations.testuser-darwin.config.home-manager.users.testuser.programs.git.settings.user.emailidentity の配線を確認
  • nix eval .#darwinConfigurations.testuser-darwin.config.homebrew.enablefalse
  • ビルドは未実施(Linux ホストから aarch64-darwin の system.build.toplevel は実ビルドできないため評価レベルの確認に留めた。実機での darwin-rebuild switch は Mac 実機入手後に確認する)

🤖 Generated with Claude Code

macOS 対応を home-manager 単独案から nix-darwin 導入案に変更。
darwinSystem + home-manager.darwinModules.home-manager を組み合わせ、
既存の home.nix / modules/*.nix をそのまま Linux・macOS 共通のユーザー
設定として再利用する形にした。

- nix-darwin input を追加
- mkDarwinConfig を追加 (mkHomeConfig と同じ引数構成: system/username/
  homeDirectory/identity/profile)
- modules/darwin/default.nix を新設。stateVersion・nix.enable=false・
  homebrew (enable=false, cleanup="none") など最小限のみ
- 評価専用の homeConfigurations.testuser-darwin を廃止し、
  darwinConfigurations.testuser-darwin (nix-darwin 経由) に一本化
- CI の darwin 評価ステップを darwinConfigurations 経由に更新

実際の業務 Mac の darwinMachines エントリ追加、Homebrew の有効化・
taps/brews/casks の選定、システム設定の追加は行わない。実機が判明
した際に machines と同様1エントリ足すだけで使える状態を目指した。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@rito528
rito528 merged commit ccedad3 into main Jul 22, 2026
11 checks passed
@rito528
rito528 deleted the feat/nix-darwin-foundation branch July 22, 2026 16:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant