wayland compositor に niri を使ってる
サブ PC で wayland compositor に niri をしばらく使っている。
いい感じなので、軽く紹介したい。
niri
PaperWM inspired な wayland compositor
PaperWM 同様の scrollable tiling な window 管理
PaperWM は gnome-shell 拡張だけど、こちらは独立した compositor
rust 製
wayland のライブラリは smithay
(よく使われてる wlroots ではない)
scrollable tiling とは?
タイル型の亜種みたいな感じ
通常のタイル型と同様に、 window を重ならないようにピッタリと自動配置してくれる
一方で通常のタイル型と違って、 window が画面左右からはみ出しても気にせずそのまま並べていく
画面幅に合わせての window 幅のリサイズは しない
focus の移動に合わせてこの左右に連なる window の列全体が左右にスクロールする感じになる
niri の github のページに動画があるので、それを見れば雰囲気がつかめるかも?
通常のタイル型の問題として、 window を開閉するたびに他の window 全部ががちゃがちゃリサイズされて気になるとか、開いている window の数が増えすぎると 1 window のサイズが小さくなりすぎるとかがある。
なので用途ごとに workspace を決めて、不必要に新しく window を開かない、それぞれ2,3枚の window で収まるように振り分ける、一定数以上の window を自動で隠す、といった運用・設定でのカバーが必要になる。
scrollable tiling では window のリサイズがされないので、そういったことはあまり気にせず雑に window を開いていける
window は基本的には横一列に並ぶだけなので、多少 window の数が増えてもどこにどの window を置いておいたのかが比較的把握しやすいような気がする。
本質的な機能ではないのだけど、各種動作がきちんとアニメーションするのが何気にありがたい
window の移動 (focus 移動) や順番の入れ替え等々
アニメーションしてくれると何が起きたのかが見た目に把握しやすい。
niri と組み合わせて使っているアプリケーションたち
niri 単体だと殺風景なので、色々組み合わせて使う
sway その他の wayland compositor 用に作られたアプリケーションが利用できたり出来なかったりする。
wlroots ベースではないので、必要なプロトコルが実装されているとは限らない。
ステータスバー
壁紙
通知表示
画面ロック
ランチャー
スピーカー音量とか画面輝度を変更したときに、画面上に OSD を出してくれるヤツ
gnome-keyring-daemon & gcr-ssh-agent
ssh-agent
(こうやっていろんなアプリケーションと組み合わせたりとか設定ファイルを書いたりとかしてると、昔 X の window manager で同じようなことをしていた日々が思い出される。)
日本語入力
fcitx5
GTK_IM_MODULE=wayland
の環境変数設定で使用GTK_IM_MODULE=fcitx
でも動くけど、こちらだと変換候補ポップアップの表示のちらつきが気になった。現状で一部のアプリケーションでポップアップウィンドウが表示されないという不具合がある:
とりあえず
GTK_IM_MODULE=fcitx
の方で回避可能っぽい。
ibus は動くけど変換候補のポップアップが出てくれないとか何か困りごとがあった (うろ覚え)
Setup Showcase
みんながスクリーンショットや設定を上げてくれてるので、いい感じのを探して参考にしよう。
欠点・問題点
開発開始から1年ちょいとまだまだ若いプロジェクトなので、足りてない機能なんかはちょくちょくある
floating window 機能がまだ無いとか
このあたりは待ってればそのうち実装されるのかもしれない。
XWayland のサポートが無い
こいつはそもそも実装する気が無さそう
XWayland を rootful mode で使えとか、 xwayland-satellite を利用しろとか案内されている。
ただ、サブ PC だからというのもあるのか、自分は X が使えなくても別に困ってない。