Dotfiles and Nix flakes for reproducible desktops. / 再現性あるデスクトップ環境を構成するためのドットファイルと Nix フレーク。
- Manage NixOS, experimental nix-darwin, and Home Manager environments from one flake. / 1つのフレークで NixOS・実験的 nix-darwin・Home Manager 環境を統合管理。
- Provide curated overlays, custom packages, and task guides for day-to-day maintenance. / 日常運用のためのオーバーレイ・独自パッケージ・タスクガイドを提供。
- Optimise Hyprland-based desktop workflow with GUI/CLI integrations and MCP tooling. / Hyprland を中心としたデスクトップを GUI/CLI 連携や MCP ツールで最適化。
- NixOS 23.11 以降。(nix-darwin を用いる場合は macOS 14 以降を推奨。)
git、nixos-rebuild、nixが利用可能であること。/etc/nix/nix.confまたはnix.settings.experimental-featuresでnix-commandとflakesを有効化済み。未設定の場合は下記のセットアップ中に追加してください。- 既存ホストの
hardware-configuration.nixを適切に同期していること(ホストごとのディレクトリを参照)。
-
システムに Git と Nix flakes を有効化します。
# /etc/nixos/configuration.nix の例 programs.git.enable = true; nix.settings.experimental-features = [ "nix-command" "flakes" ];
-
sudo nixos-rebuild switchで設定を適用。 -
リポジトリをクローンし、ワークディレクトリを
~/.nixに設定。mkdir -p ~/.nix git clone https://github.com/purplesmoke05/dotnix.git ~/.nix cd ~/.nix
-
対象ホストの
/etc/nixos/hardware-configuration.nixをリポジトリ内の対応するホストのhardware-configuration.nixにコピーまたはマージ。 -
ホスト向けの system + Home Manager を適用。
sudo nixos-rebuild switch --flake .#laptop # 他ホスト: sudo nixos-rebuild switch --flake .#hq
-
再起動して設定を反映。
macOS(実験的)では
nix run .#darwinConfigurations.<host>.systemを参照。/ macOS (experimental) users can reviewhosts/darwin/README.mdfor additional steps.
| Host | Platform | Notes |
|---|---|---|
laptop |
NixOS | モバイル向け設定。Hyprland + Home Manager 標準構成。 |
hq |
NixOS | 据え置きワークステーション。拡張 GUI/開発ツールを有効化。 |
darwin |
macOS (experimental) | nix-darwin + Home Manager 統合。要 brew 連携。 |
.
├── flake.nix # Flake entrypoint / フレーク入口
├── flake.lock # Pin for inputs / 依存固定
├── hosts # System definitions / システム定義
│ ├── nixos
│ │ ├── common # 共通モジュール
│ │ ├── laptop # Laptop 向け
│ │ └── hq # HQ 向け
│ └── darwin # Experimental macOS
├── home-manager # HM モジュール
│ ├── cli
│ ├── gui
│ ├── development
│ ├── mcp-servers
│ └── wm
├── pkgs # Custom packages / 独自パッケージ
│ ├── codex
│ ├── gh-iteration
│ ├── ssh
│ ├── sui
│ └── whisper-typing
├── tasks # Maintainer workflows / 運用ワークフロー
├── scripts # Utility scripts / ユーティリティスクリプト
├── logs # ログ収集(例: hotspot_debug)
└── AGENTS.md, README.md, Dockerfile, etc.
- Hyprland desktop. Custom Hyprpanel, Rofi, GTK theming, fcitx5 Mozc, Xremap integration. / Hyprpanel や Rofi、GTK テーマ、fcitx5 Mozc、Xremap を組み合わせた Hyprland デスクトップ。
- Development shells.
nix develop,.#rust,.#py312など Python/Rust ビルダーを提供。/ Rust・Python 向け開発シェルをnix developで提供。 - Custom overlays. Patched OpenSSH、
zen-browser,claude-codeなどをオーバーレイ化。/ OpenSSH パッチや独自パッケージをオーバーレイで管理。 - MCP & automation.
home-manager/mcp-serversとtasks/が Claude/Codex ワークフローを支援。/ MCP サーバー設定とタスク雛形でエージェント運用を補助。
nix develop [.<shell>]— 開発シェルに入る。nix fmt— Nix ファイルを整形。nix flake check— 出力と評価を検証。nixos-rebuild build --flake .#<host>— ドライラン。sudo nixos-rebuild switch --flake .#<host>— システム適用。nix flake update— 依存更新。
scripts/playwright-login-autofill.py— 自社管理のログイン画面に対する Playwright 自動入力。/ Playwright autofill for self-managed login pages.
nix develop .#py312 -c python scripts/playwright-login-autofill.py \
--url https://login.example.internal \
--email tester@example.internal \
--allowed-host login.example.internal \
--success-url-contains /dashboard \
--headedLOGIN_AUTOFILL_PASSWORD未指定時はメールの@より前をパスワードとして利用。/ IfLOGIN_AUTOFILL_PASSWORDis unset, the local-part before@is used as the password.LOGIN_AUTOFILL_ALLOWED_HOSTSまたは--allowed-hostで許可ホストを必須指定。/ An explicit allowlist viaLOGIN_AUTOFILL_ALLOWED_HOSTSor--allowed-hostis required.--email-selectorなどはcss=...,label=...,placeholder=...,button=...をカンマ区切りで指定可能。/--email-selectorand related options accept comma-separatedcss=...,label=...,placeholder=..., andbutton=...locators.
- シークレットは Git に含めず、
~/.config/mcp-secrets/(ユーザー向け)や/var/lib/<service>/(サービス向け)に配置。/ Never commit secrets; store user secrets under~/.config/mcp-secrets/and service secrets under/var/lib/<service>/. - Host guard:
LAPTOP_USER/HQ_USER/DARWIN_USERでユーザー名を上書き可能、クロスホスト評価時はDISABLE_HOST_GUARD=1。/ Override guard vars when evaluating for different hosts. - 追加の sops-nix/agenix 等も歓迎。/ Consider adopting sops-nix or agenix for encryption.
- ブランチ作成前に
nix fmt・nix flake checkを実行。 - Conventional Commits + 絵文字プリフィックス(例:
✨ feat:)。 - 変更点・理由・影響ホストを PR に記載。必要ならスクリーンショット添付。
- UI/WM 変更は
nixos-rebuild buildで検証し、結果を共有。
- 評価時に
host guardが原因で失敗する場合はDISABLE_HOST_GUARD=1 nix build ...を試行。/ UseDISABLE_HOST_GUARD=1when evaluating different hosts. nix developで Python バージョンが必要な場合はpythonVersionsを参照しpkgs.buildPythonを利用。/ Custom Python builders are exposed viapkgs.buildPython.- Hyprland 関連の不整合は
home-manager switch --flake .#<user>@<host>で再適用。/ Re-runhome-manager switchif Hyprland modules drift.
hosts/darwin/README.md— macOS 向けガイド。AGENTS.mdとCLAUDE.md— MCP エージェントの利用方法。tasks/*.md— メンテナワークフロー手順書。
Happy hacking! / 楽しい Nix ライフを!