2023年は個人的nixpkgs元年なのですが、nixpkgsを利用していく中で気がついたらNixOSをメイン環境として利用するようになっていました。
今回はNixOS環境のセットアップの一環としてEXWMを導入してみましたので、その内容についてまとめました。
EXWMのセットアップについては以下の記事を参照ください。
EXWMを有効にする
/etc/nixos/configuration.nix
にEXWMの設定を追加していきます。
最もシンプルな方法は、NixOSのderivationとしてEXWMが提供されているので、これを有効にすることです。
|
|
exwm-config-example
も利用する場合は、 enableDefaultConfig
も true
とします。
|
|
もし、 exwm-config-example
を利用せずカスタムしたいときは、 loadScript
にelispで必要な設定を記述します。
|
|
なお、ここでは詳細に触れませんが、ウィンドウマネージャの開始スクリプトそのものも変更したい場合は exwm
では対応できません。
services.xserver.windowManager.session
を直接編集し、その中で emacs
を起動する必要があります。
カスタムビルドEmacsを利用する
NixOSではカスタムビルドしたEmacsを利用する方法として、 emacs-overlay
がコミュニティによって提供されています。
公式ガイドのとおり /etc/nixos/configuration.nix
にオーバーレイを追記します。
|
|
emacs-overlay
では emacsGit
や emacsUnstable
といった名前でパッケージを提供しており、直接nixpkgsやnixosのEmacsパッケージを上書きしません。
そのため、 exwm
の内部で参照しているEmacsパッケージにはそのままでは影響を与えないので注意が必要です。
直接 emacs
パッケージをオーバライドしてしまいたい場合は、そのためのオーバーレイを後段に追記します。
例えば、 emacsUnstable
を利用したい場合は以下のようにします。
|
|
まとめ
EXWMをNixOSで利用するための設定方法を紹介しました。
NixOSでは、initファイルの編集ができない代わりに、他のパッケージ同様 /etc/nixos/configuration.nix
を編集することでインストールや設定をすることが可能です。
emacs-overlay
を合わせることで、Emacsのカスタマイズにも対応できます。
EXWMはderivationが用意されていることもあって、導入は比較的簡単ですし、 loadScript
を使うことでEXWM向けのelispと .emacs.d
以下のコンフィグを分離して設定、管理できるのもありがたいポイントでした。