この記事はEmacs Advent Calendar 2023の24日目の記事です。
利用する環境はNixOS 23.05です。以前EXWMについての記事を書いていたのですが、Windows環境ではNixOSのWSL2イメージが安定してきたこともあって、WSL環境に乗り替えました。
なので今はLinux Desktop環境およびEXWMは利用していないのですが、備忘のためにも設定した内容を残しておこうと思います。
なお、EXWMの導入とNixOS環境でのインストール方法については以前の記事を参照してください。
Mini buffer位置の変更
|
|
EXWMではMini bufferがかっこよくオーバーレイするのですが、mode lineが下に貼り付いた表示になっているため、被ってしまって見難いときがあります。 なので、Mini bufferをTop位置に変更しておきます。
exwm-outer-gapsの導入
EXWMはそのままでは全面Emacsなので、背景が見えません。 exwm-outer-gaps
を使ってEmacsの端を見せて背景をチラ見せできるようにします。
NixOSのconfiguration.nixで導入するために、 fetchFromGitHub
を使ったexwm-outer-gaps.nixファイルを作って利用します。
|
|
init.elに (require 'exwm-outer-gaps)
を記述し、スクリーンサイズ設定の後で適用されるように exwm-randr-screen-change-hook
の中で (exwm-outer-gaps-mode +1)
を実行するようにします。
必要に応じて、ギャップの大きさなどを変更できますが、ここではデフォルトのまま使っています。
fehによる背景の変更
EXWMではWindowを透かさないと背景は見えないのですが、上記のexwm-outer-gapsでチラ見せしたりすることでお洒落に背景を使うことができます。
EXWMでの背景設定は feh
コマンドを使って行います。
xrandr
によるスクリーンサイズ設定の前に背景を指定すると画像サイズが変わってしまっうので、スクリーンサイズ調整後に設定するようにします。
|
|
picomの導入
EXWMはcomposite処理をしないので、Windowにシャドウや透過を指定するためにはCompositorの導入が必要です。
ここでは picom
を利用します。
nixpkgs/picom.nix at master · NixOS/nixpkgs · GitHub のように、Nixpkgsにはpicomのconfigが含まれているので、 configuration.nix
で設定します。
蛇足ですが、このときpicomはserviceとして起動し ~/.config/picom
を参照しないようです。
シャドウや透過をいい感じにする
EXWMではシャドウや透過効果はWindow毎に付与されるため、そのままだとmode lineごと透けてしまいます。
例えば、VivaldiにフォーカスしているとEmacsが背後になり、結果mode lineが透けたり、 シャドウがVivaldi部分にだけかかるので、Emacsとの間に階層があるような見え方になってしまいます。
これだと格好悪いので、Emacsだけを排除して効果をつけることでそういった違和感を減らしてみます。
picomの設定で shadowExclude
を指定します。
man picom
で調べると、WM_CLASSに2つの名前が入っているので、それをclass_gやclass_iで指定できればよさそうです。
ここに指定するためのプロパティは xprop
コマンドで調べます。
xpropで対象のWindowをクリックするとX Window System上のプロパティが確認できます。
|
|
ついでにMini bufferを表示したときにシャドウをつけて見やすくしてみました。
Mini bufferは _NET_WM_NAME(UTF8_STRING)
しかプロパティをもってなかったので、これをそのまま指定しています。
スクリーンショットのサポート
スクリーンショットの撮影は maim
コマンドを利用します。
maimにはX Compositerが必要ですが、ここでは上記で導入したpicomがあるので問題ありません。
あとはスクリーンショットコマンドを設定します。ここではF6でフルスクリーンキャプチャをするようにしています。
|
|
まとめ
最近は使えていませんがEXWM自体はとてもよかったのでおすすめです。 こういったデスクトップカスタムは、はまると永遠とやってしまうので沼ですね^^;
ちなみに英語ではこういったカスタマイズを ricing
と言うようです。
他にはredditで unixporn
のキーワードでデスクトップのカスタム例が出ているのでいい刺激になったります。
それではみなさん、メリークリスマス!