このリポジトリは NixOS と Home Manager を使った再現性のあるシステム構成です。
- OS: NixOS
- パッケージマネージャー: Nix Flakes
- ユーザー環境管理: Home Manager
- 対象ホスト: Atropos, Nyx
Atropos.nix: Atropos ホストの NixOS 設定Nyx.nix: Nyx ホストの NixOS 設定flake.nix: Flakes 設定ファイルhardware/: ハードウェア固有の設定
home.nix: ユーザー環境の統合設定module/Home/: ユーザー環境のモジュール群config/: アプリケーション設定ファイル(シンボリックリンク元)
- WM: Niri(Wayland コンポジター)
- Bar: Waybar
- ランチャー: Wofi
- IME: Fcitx5 + Mozc(日本語入力)
- VPN: Tailscale
- 通知: nm-applet
- メール: Thunderbird
- チャット: Discord
- ドキュメントビューワ: Okular
- ファイルマネージャー: Nautilus + GNOME Sushi
- ノート: Notion, Obsidian
- エミュレータ: Alacritty
- シェル: fish + Starship
- エディタ: Neovim (Lazyvim ベース)
- ファイラー: yazi
- コンパイラ: gcc, g++
- 環境マネージャー: mise (node, cargo 管理)
- Python: uv
- IDE: Unity Hub, JetBrains Rider, VSCode
- AI: GitHub Copilot (VSCode 拡張 + CLI)
# Atropos ホストの場合
sudo nixos-rebuild switch --flake .#Atropos
# Nyx ホストの場合
sudo nixos-rebuild switch --flake .#Nyx# Atropos ホストの場合
home-manager switch --flake .#AtroposHome
# Nyx ホストの場合
home-manager switch --flake .#NyxHomeモジュールはカテゴリーごとに整理されています:
-
terminal/: ターミナル関連alacritty.nix: Alacritty 設定kitty.nix: Kitty 設定fish.nix: fish シェル + Starshipzsh.nix: zsh シェル
-
editor/: エディタ関連neovim.nix: Neovim + Lazyvim 設定vscode.nix: VSCode + 拡張機能
-
desktop/: デスクトップ環境niri.nix: Niri コンポジターhyprland.nix: Hyprlandsway.nix: Swaywaybar.nix: Waybar(ステータスバー)wofi.nix: Wofi(ランチャー)wlogout.nix,anyrun.nix,walker.nix
-
apps/: アプリケーションchrome.nix,vivaldi.nix: ブラウザdiscord.nix: Discordsteam.nix: Steam
-
development/: 開発環境general.nix: 一般的な開発ツールgit.nix: Git 設定direnv.nix: direnvrust.nix: Rust 環境dev-tools.nix: CLI 開発ツール(yazi, gcc, mise, uv)dev-apps.nix: GUI 開発アプリ(Unity Hub, Rider)
-
input/: 入力メソッドfcitx5.nix: Fcitx5 + Mozcibus.nix: IBus(代替)
-
desktop/: デスクトップ環境関連default.nix: デスクトップモジュールの統合niri.nix: Niri システム設定apps.nix: デスクトップアプリケーションnautilus.nix,thunderbird.nix,kdeconnect.nixなど
-
develop/: 開発環境設定- Python, Unity などの開発ツール
-
system/: システムレベルのサービスutils.nix: ユーティリティツールdocker.nix: Dockerqemu.nix: QEMU 仮想化sunshine.nix: Sunshine リモートデスクトップparsec.nix: Parsecollama.nix: Ollama(LLM)gemini.nix: Geministock-ticker.nix: 株価ティッカーwine.nix: Wine
-
apps/: アプリケーションdiscord.nix: Discordblender.nix: Blenderdolphin.nix: Dolphingaming.nix: ゲーム関連
-
input/: 入力メソッドfcitx5.nix: Fcitx5 システム設定ibus.nix: IBus(代替)
-
windows/: Windows 互換レイヤー(Wine, Bottles)
各アプリケーションの設定ファイルは config/ ディレクトリに保存され、Home Manager によってシンボリックリンクで配置されます。
config/niri/config.kdl: Niri 設定config/alacritty/alacritty.toml: Alacritty 設定config/waybar/: Waybar 設定config/wofi/: Wofi 設定config/nvim/: Neovim 設定
注意: config/ ディレクトリの内容は直接変更してください。Nix 設定からは参照のみ行います。
pkgs/niri-taskbar: Waybar 用の Niri タスクバー拡張モジュールを Cargo でビルドoverlays/default.nix:niri-taskbarをpkgs.niri-taskbarとして提供するオーバーレイflake.nix:nix build .#niri-taskbarでビルド可能なパッケージ出力と、Home Manager/NixOS 双方でオーバーレイを読み込むよう更新- Waybar の
config/waybar/{Bottom,Top}ではmodule_pathを~/.nix-profile/lib/libniri_taskbar.soに設定済み(Home Manager がniri-taskbarをhome.packagesに含めるため、プロファイル経由で解決されます)
ビルド確認:
nix build .#niri-taskbar生成された libniri_taskbar.so を Waybar の cffi/niri-taskbar モジュールから参照することで、Niri 専用のタスクバーが利用できます。
- システムパッケージ:
Atropos.nixまたはNyx.nixのenvironment.systemPackagesに追加 - ユーザーパッケージ: 適切なモジュール(例:
dev-tools.nix)のhome.packagesに追加
config/ディレクトリ内のファイルを直接編集- Home Manager をリビルド(変更は即座に反映されます)
詳細は docs/disk-mount.md を参照してください。
日本語フォントは以下が設定済みです:
- Serif: Noto Serif CJK JP
- Sans-Serif: Noto Sans CJK JP
- Monospace: JetBrainsMono Nerd Font (HackGen も利用可能)
- Emoji: Noto Color Emoji
# Flake のロックファイルを更新
nix flake update
# キャッシュをクリア
sudo nix-collect-garbage -d# Home Manager のステートをリセット
home-manager expire-generations "-30 days"
# 再ビルド
home-manager switch --flake .#AtroposHomeこのリポジトリの設定ファイルは個人用途です。含まれるソフトウェアは各ライセンスに従います。