nix

star 0

macOS (nix-darwin) dotfiles の Nix 環境管理(CLI ツール・GUI アプリ (cask) の追加削除、パッケージ検索、darwin-rebuild、flake update)。「パッケージ追加」「ツール入れたい」「アプリ追加」「brew install」「nix」「darwin-rebuild」の文脈で発動。

daiki-beppu By daiki-beppu schedule Updated 6/12/2026

name: nix description: >- macOS (nix-darwin) dotfiles の Nix 環境管理(CLI ツール・GUI アプリ (cask) の追加削除、パッケージ検索、darwin-rebuild、flake update)。「パッケージ追加」「ツール入れたい」「アプリ追加」「brew install」「nix」「darwin-rebuild」の文脈で発動。

Nix 環境管理

概要

この dotfiles は Nix (nix-darwin + Home Manager) で CLI ツールを宣言的に管理している。GUI アプリ (cask) は nix-darwin 経由で Homebrew に委譲。

構成ファイル

ファイル 役割 編集頻度
flake.nix エントリポイント。inputs(依存)、nix-darwin 設定、Homebrew cask/brews 定義 たまに
flake.lock 依存バージョンのロック(自動生成、手動編集しない) 触らない
nix/packages.nix Home Manager の CLI パッケージ一覧 よく編集する

パッケージ追加・削除

CLI ツール(nixpkgs にあるもの)

nix/packages.nixhome.packages リストに追加・削除する。

home.packages = with pkgs; [
  gh
  git
  ripgrep  # ← 追加
];

パッケージ名は https://search.nixos.org/packages で検索できる。 コマンドラインで検索する場合: nix search nixpkgs <キーワード>

GUI アプリ(Homebrew cask)

flake.nixhomebrew.casks リストに追加・削除する。

casks = [
  "1password"
  "slack"  # ← 追加
];

nixpkgs にない CLI ツール

flake.nixhomebrew.brews リストに追加する。 必要なら homebrew.taps にも tap を追加する。

taps = [
  "some-org/tap"  # ← tap が必要なら追加
];
brews = [
  "ni"
  "some-org/tap/some-tool"  # ← 追加
];

適用コマンド

パッケージの追加・削除・変更後は以下を実行して反映する:

sudo darwin-rebuild switch --flake ~/01-dev/dotfiles#mba

注意: sudo が必要(nix-darwin はシステム設定を変更するため)。 nix コマンドが sudo 環境で見つからない場合はフルパスを使う:

sudo /nix/var/nix/profiles/default/bin/nix run nix-darwin -- switch --flake ~/01-dev/dotfiles#mba

初回のみ nix run nix-darwin -- 経由で実行する。2回目以降は darwin-rebuild が PATH に入る。

#mba について: #mbaflake.nix 先頭の hostname 変数(hostname = "mba")を指すフラグメントで、darwinConfigurations.${hostname} から生成される。個人 ID ではないので通常は触らない。この dotfiles をフォークして自分用にリネームする場合のみ、flake.nixhostnameusername を合わせて変更する。

依存の更新

nixpkgs や home-manager を最新に更新する:

nix flake update --flake ~/01-dev/dotfiles

更新後は darwin-rebuild switch で適用する。

パッケージ検索

# nixpkgs からパッケージを検索
nix search nixpkgs ripgrep

# 結果例:
# * legacyPackages.aarch64-darwin.ripgrep (14.1.1)
#   A utility that combines the usability of The Silver Searcher ...

nixpkgs にない場合は homebrew.brews に追加する。

パス優先順位

Nix > Homebrew > システム の順で PATH が構成されている。

  • Nix パッケージ: /etc/profiles/per-user/$USER/bin/$USER は実行ユーザー)
  • Homebrew: /opt/homebrew/bin/

which <command> でどちらが使われているか確認できる。

よくある操作の早見表

やりたいこと 操作
CLI ツール追加 nix/packages.nix に追加 → darwin-rebuild switch
GUI アプリ追加 flake.nixcasks に追加 → darwin-rebuild switch
nixpkgs にないツール追加 flake.nixbrews に追加 → darwin-rebuild switch
パッケージ検索 nix search nixpkgs <キーワード>
全依存を最新化 nix flake updatedarwin-rebuild switch
現在のパッケージ一覧 nix/packages.nix を読む
ロールバック sudo darwin-rebuild switch --rollback
Install via CLI
npx skills add https://github.com/daiki-beppu/dotfiles --skill nix
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator