Open4

NixOS環境構築

鏡華鏡華

設定の書き方について

NixOS Modulesについては以下を参照。
https://zenn.dev/link/comments/0e4819deba458f

複数マシン間で設定を共有するために、mySettingsモジュール(NixOS Modules)とmyHomeSettingsモジュール(home-manager)を生やして、各マシン固有の設定ファイルで必要な設定をenableする形を採っている。
この方法はダイナミックにインポートすべきファイルを指定するのに比べ、各設定間に依存関係がある(こっちがenableな場合はあれもenableしなきゃいけない)場合に、import順を考える手間がなくなるメリットがある。

マシンごとの設定の例

https://github.com/mirror-kt/dotfiles/blob/main/machines/chisato/configuration.nix
https://github.com/mirror-kt/dotfiles/blob/main/machines/chisato/home-manager/home.nix

鏡華鏡華

カラーテーマについて

base24という24色のカラーコードから各種アプリケーションの配色を生成するプロジェクトに準拠する。
カラーパレットは背景色/前景色にNord、アクセントカラーにAtom OneDarkのカラーパレットを採用したOneNordを使用する。
Nix言語から扱いやすくするためにbase16.nixを採用した。

入れるだけでbase16に則って各種アプリケーションをよしなな見た目にしてくれるstylixというプロジェクトもあるが、設定される見た目が好みではなかったため自分で1つ1つ設定することにする。

鏡華鏡華

デスクトップ環境 Hyprland

Wayland上で動作するタイル型のコンポーザーであるHyprlandを選択した。

関連して入れたもの

waybar

ステータスバー。
GTK3ベースのためbase24-gtk-cssジェネレータで@define-color形式のCSSを吐き、style.cssでimportしている。
https://github.com/mirror-kt/dotfiles/blob/2358891864814c970c2303edf4c63ea1db7eec44/home-manager/modules/desktop/hyprland/waybar/default.nix#L108

wezterm

ターミナルエミュレータ。
nixpkgsにもパッケージが存在するが、未リリースの変更を含むnightly版を使いたいのでwez/wezterm公式が提供するカスタムflakeを使用している。
https://github.com/mirror-kt/dotfiles/blob/443d09b4c5c54e3e3f135110070b397d907b8016/flake.nix#L15-L18
https://github.com/mirror-kt/dotfiles/blob/443d09b4c5c54e3e3f135110070b397d907b8016/home-manager/modules/gui/wezterm.nix#L19-L21

networkmanager_dmenu

ネットワーク設定をdmenu互換のアプリケーションで行うツール。
nm-appletのステータスウィジェットではなくwaybarのnetwork moduleを使いたかったというだけ。

wofi

アプリケーションランチャー/メニュー。
アプリケーション起動の起点になる他、networkmanager_dmenuでのdmenu互換プログラムとして使用している。
TODO: カラーテーマの設定をやる

dunst

通知デーモン。
通知センターが欲しくなってきたので後でswayncに入れ替える予定。

wlogout

ログアウト/シャットダウンメニュー
wofiでシャットダウンメニュー出すのでもいいのでは?と思案中。

Dolphin

ファイルマネージャ。
GTKテーマがうまいこと適用されていないらしく、見た目が変になっている。
Thunarに入れ替え予定。