Nixosのdotfiles
  • Nix 67.6%
  • Python 29%
  • Shell 3.1%
  • CSS 0.3%
Find a file
2026-06-21 12:32:01 +09:00
AGENTS prismgh 2026-06-21 06:48:57 +09:00
flake-inputs flake 2026-06-20 16:41:54 +09:00
home/attodao cursor theme 2026-06-21 12:32:01 +09:00
hosts iroiro 2026-06-20 13:34:41 +09:00
modules/nixos prismgh 2026-06-21 06:48:57 +09:00
.gitignore add flake.lock 2026-06-20 13:37:56 +09:00
AGENTS.md iroiro 2026-06-20 13:34:41 +09:00
flake.lock flake 2026-06-20 16:41:54 +09:00
flake.nix flake 2026-06-20 16:41:54 +09:00
README.md README 2026-06-10 23:10:28 +09:00

AttODesk NixOS Configuration

attodao 用の NixOS / Home Manager 構成です。デスクトップの attodeskートPCの attolap を、共通モジュールとホスト名による条件分岐で管理します。

このリポジトリには個人環境向けのユーザー名、メールアドレス、ディスク構成、モニター構成が 含まれています。そのまま第三者の環境へ適用する用途は想定していません。

Hosts

ホスト 用途 主な差分
attodesk デスクトップ 3画面、/mnt/hdd1 のユーザーディレクトリ、Wallpaper Engine、StreamController、Solaar、Kando、ゲームランチャー
attolap ートPC 単一画面、ホーム内のユーザーディレクトリ、電源プロファイル、UPower

ホスト固有値は設定ファイルを複製せず、共有モジュール内の hostName == "attodesk" などの条件で切り替えています。

主な構成

  • NixOS unstable (nixpkgs/master)
  • Home Manager
  • Hyprland / XWayland
  • Noctalia ShellとEverforestコミュニティパレット
  • ReGreet
  • LimineとカスタムPlymouthテーマ
  • PipeWire
  • fcitx5-mozc-ut
  • Floorp、Thunderbird、Zed、Foot、PCManFM
  • Steam、Prism Launcher、OBS Studio、MuseScore
  • Open Deck Desktop
  • OpenSSHクライアント・サーバー

fcitx5-mozc-utは merge-ut-dictionaries と各辞書の flake inputからビルドします。

ディレクトリ構成

.
├── flake.nix
├── hosts/
│   ├── attodesk/
│   │   ├── default.nix
│   │   ├── hardware-configuration.nix
│   │   └── mounts.nix
│   └── attolap/
│       ├── default.nix
│       └── hardware-configuration.nix
├── modules/nixos/
│   ├── boot/
│   ├── core/
│   ├── desktop/
│   ├── hardware/
│   ├── programs/
│   ├── security/
│   └── services/
└── home/attodao/
    ├── desktop/
    ├── programs/
    ├── services/
    ├── default.nix
    └── packages.nix
  • hosts/<hostname>/default.nix: ホストが利用するNixOSモジュール
  • modules/nixos/: システム全体の共通設定
  • home/attodao/: attodao ユーザーのHome Manager設定
  • flake.nix: input、ホスト一覧、NixOSとHome Managerの組み立て

セットアップ

1. リポジトリを配置

git clone <repository-url> ~/.dotfiles
cd ~/.dotfiles

2. Hardware configurationを配置

対象マシンで生成したファイルを、対応するホストディレクトリへ配置します。

sudo nixos-generate-config
sudo cp /etc/nixos/hardware-configuration.nix \
  ~/.dotfiles/hosts/attolap/hardware-configuration.nix
sudo chown "$USER":users \
  ~/.dotfiles/hosts/attolap/hardware-configuration.nix

attolap の同ファイルは現在プレースホルダーです。実機で生成した内容へ置き換えるまで、 完全なNixOSビルドはできません。

3. ビルドして適用

まず評価とビルドだけを行います。

sudo nixos-rebuild build --flake .#attodesk

問題がなければ適用します。

sudo nixos-rebuild switch --flake .#attodesk

ートPCではホスト名を変更します。

sudo nixos-rebuild switch --flake .#attolap

日常的な操作

設定を確認するだけの場合:

nix eval .#nixosConfigurations.attodesk.config.system.build.toplevel.drvPath

Home Managerだけを適用する場合:

home-manager switch --flake .#attodao

flake inputを更新する場合:

nix flake update
sudo nixos-rebuild switch --flake .#attodesk

このリポジトリでは flake.lock をGit管理対象外にしています。再現性を優先する運用へ 変更する場合は、.gitignore から flake.lock を削除してコミットしてください。

デスクトップ環境

Noctalia

  • Everforestパレット
  • 上部バーと下部Dock
  • 天気、夜間色温度、メディア、通知、クリップボード
  • SOGo CalDAVカレンダー
  • Open Deckを両ホストのDockへ固定
  • ゲームランチャーはattodeskのみDockへ固定

Hyprland

主なキーバインド:

操作 キー
ターミナル Super+Enter
ファイルマネージャー Super+E
ランチャー Super+Space
コントロールセンター Super+S
ロック Super+L
ウィンドウを閉じる Super+Q
範囲スクリーンショット Super+Shift+S
ウィンドウスクリーンショット Super+Alt+Shift+S
画面スクリーンショット Super+Ctrl+Shift+S
Hyprland再読み込み Super+Shift+R

スクリーンショットは選択中に画面を固定します。保存先は次のとおりです。

  • attodesk: /mnt/hdd1/Pictures/Screenshots
  • attolap: ~/Pictures/Screenshots

ストレージ

attodesk はラベル付きBtrfsボリュームを自動マウントします。

ラベル マウント先
ssd1 /mnt/ssd1
hdd1 /mnt/hdd1

attodesk のDocuments、Downloads、Music、Pictures、Videosは/mnt/hdd1上に作成されます。 attolap では通常どおりホームディレクトリ内に作成されます。

メールとカレンダー

Thunderbirdには次のアカウント定義が含まれます。

  • attodao@attodao.cc: IMAP / SMTP
  • atsuatat@gmail.com: Gmail
  • SOGo CalDAVカレンダー

パスワードはNix設定へ保存しません。初回起動時にThunderbirdへ入力し、システムの 資格情報ストアへ保存します。

mail.attodao.cc192.168.0.100へ解決する/etc/hosts設定はattodeskだけに 適用されます。

ログインPIN

ReGreetとログイン用に6桁PIN認証を追加しています。NixOS適用後にPINを設定します。

sudo set-login-pin attodao

PINのハッシュは/etc/security/login-pin/attodao.pbkdf2へroot専用権限で保存されます。 通常パスワードによるフォールバックも有効です。

ホストの追加

例としてattofortを追加する場合:

  1. hosts/attofort/default.nixを作成する
  2. hosts/attofort/hardware-configuration.nixを配置する
  3. flake.nixhostNames"attofort"を追加する
  4. 必要な共有モジュールでhostName == "attofort"の条件を追加する
  5. nix eval .#nixosConfigurations.attofort.config.networking.hostName --rawで確認する

設定差分が小さい場合はホスト専用profileを作らず、既存の共有モジュール内で条件分岐します。

注意事項

  • system.stateVersionhome.stateVersionは、内容を理解せず変更しないでください。
  • attodeskのモニター名、解像度、ディスクラベルは実機構成に依存します。
  • Open Deck DesktopはHome Manager適用時にGitHub ReleasesからAppImageを確認します。
  • メール、CalDAV、GitHub APIへの接続にはネットワークが必要です。
  • 適用前に必ずnixos-rebuild buildで評価とビルドを確認してください。