memo

2024-12-08

wayland compositor に niri を使ってる

サブ PC で wayland compositor に niri をしばらく使っている。

いい感じなので、軽く紹介したい。

  • niri

    • https://github.com/YaLTeR/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 ベースではないので、必要なプロトコルが実装されているとは限らない。

    • waybar

      • ステータスバー

    • swww

      • 壁紙

    • SwayNotificationCenter

      • 通知表示

    • swayidle & swaylock

      • 画面ロック

    • fuzzel

      • ランチャー

    • avizo

      • スピーカー音量とか画面輝度を変更したときに、画面上に OSD を出してくれるヤツ

    • gnome-keyring-daemon & gcr-ssh-agent

      • ssh-agent

    • (こうやっていろんなアプリケーションと組み合わせたりとか設定ファイルを書いたりとかしてると、昔 X の window manager で同じようなことをしていた日々が思い出される。)

  • 日本語入力

    • fcitx5

      • GTK_IM_MODULE=wayland の環境変数設定で使用

        • GTK_IM_MODULE=fcitx でも動くけど、こちらだと変換候補ポップアップの表示のちらつきが気になった。

        • 現状で一部のアプリケーションでポップアップウィンドウが表示されないという不具合がある:

    • ibus は動くけど変換候補のポップアップが出てくれないとか何か困りごとがあった (うろ覚え)

  • Setup Showcase

  • 欠点・問題点

    • 開発開始から1年ちょいとまだまだ若いプロジェクトなので、足りてない機能なんかはちょくちょくある

      • floating window 機能がまだ無いとか

      • このあたりは待ってればそのうち実装されるのかもしれない。

    • XWayland のサポートが無い

      • こいつはそもそも実装する気が無さそう

      • XWayland を rootful mode で使えとか、 xwayland-satellite を利用しろとか案内されている。

      • ただ、サブ PC だからというのもあるのか、自分は X が使えなくても別に困ってない。