ディスカッション (11件)
Waylandの設計ではコンポジターとウィンドウマネージャー(WM)が一体化しているのが一般的ですが、これらを個別に管理したいというニーズや、その設計上の課題についてのトピックです。X11のような柔軟な構成をWaylandでどう実現するか、エンジニアたちの関心事となっています。
Waylandが、他の無関係なインフラを色々変えずにプラグイン可能なWMだけをサクッと差し替えられないっていうのは、X11と比較したときにユーザーが直面する最大の損失の一つだと俺は思う。この状況を改善しようとしている人たちは、いわゆる「神の仕事」をしてるよね。
もしWaylandがこれを解決できないなら、俺は一生X11を使い続けるよ。必要ならコーディングエージェントを使ってでも動かし続けてやる。
今は完全にバイブスでコーディングした自分専用のRiverウィンドウマネージャーを使ってて、これが最高に思い通りに動いてる。Hyprlandだとやりたいことが全部できなかった(例えばデフォルトをBSPじゃなくて等面積のタイル表示にするとか)のに気づいてから乗り換えたんだ。この分離が俺にとってどれほど大きな影響があったかを示す、シンプルな例だね。
Waylandを使ったシステムなんて一度も触ったことないし(15年くらいi3一筋)、こういうプロジェクトが出るたびに、そもそもなんでWaylandなんて必要なの?って思っちゃう。シンプルであるべきことに、いちいち手間がかかりすぎだよ。確かにX11に欠点はあるけど、基本的にやりたいことは何でもさせられる。Waylandはストレスが多すぎて、乗り換えるのを検討する気にもならなそう。
これは本当に興味深い方向性だね。コンポジタとウィンドウマネージャーを分離するっていうのは、後から考えれば当たり前のように思えるアイデアだけど、ここのプロトコルやステートマシンの設計を見ると、実用化するのにどれだけの労力が必要だったかがよくわかる。みんなにフルコンポジタを作らせることなく、WaylandのWMを書くハードルを下げるのは、大きな勝利だと思う。
俺にとっては、これが初めてWaylandを時間の無駄じゃないって感じられた瞬間だ。ディスプレイサーバーは、サーフェス管理の上にウィンドウ管理の複雑さまで背負い込む必要はない。著者の「Waylandの初期作者がなぜWMとコンポジタを統合したのかは定かではないが、単にそれが一番楽な道だったからだと思う」という意見には、全く同感。それが社会的に最小の抵抗だったかはともかく、単に取り組みやすい課題だったんだろうな。著者もたぶん同じことを言いたいんだと思う。(それとリモートアクセスの件も解決が必要だ。X11なら普通に動くのに。最後に90度回転させたディスプレイで試したときは、入力が実際の画面から90度ずれてた。もちろん単なるバグなんだけど、Waylandのアーキテクチャは、X11よりもこういうバグが発生しやすい構造になってる気がしてならない。)
WMとコンポジタを統合するのって、Waylandの設計上の主要な特徴の一つじゃなかったっけ?歴史には詳しくないけど、Waylandの設計者がそうした理由についてのプレゼンや論文はきっとあるはずだよね。
ここのコメントには変な誤解がいっぱいあるな。Waylandが何かを決めるわけじゃない。ウィンドウをどこに配置するか、入力を受け取らせるかどうかをコンポジタが決めるんだ。プログラムが勝手に好きな場所に描画したり、システム全体のキーストロークを盗んだりすることはできない。ちゃんと実装されていれば、スクリーンショット機能はコンポジタに直接組み込まれる。プログラムが画面の一部の読み取り権限をリクエストして、承認されたらコンポジタが提供するっていうAPIなんだ。その方がずっと安全だし、最近はこれで完璧に動いてる。残念ながら、すべてのコンポジタがこれを実装してるわけじゃないけどね。どうしてもこれを回避したいなら、keydを見てみるといい。rootサービスとしてバックグラウンドで動くデーモンで、好きなものにキーを渡すための適切な仕組みを提供してくれる。はっきりさせておくと、適切なセキュリティモデルは、プログラムが「グローバル」ホットキーの登録をリクエストして、登録後にコンポジタが適切なプログラムに渡すっていう形だ。これはKDE Plasma 6ですでに実現されてて、普通に動いてるよ。
Riverはこの分離の前からすでに最高だったから、今後この分野で何が起こるかすごく楽しみだね。分離を待つ間はNiriに乗り換えてたけど、いつか戻ると思う。もしXmonadユーザーだったなら、Riverこそが君のためのWayland WMだと言い切れるよ。
伝統的にX11にはコンポジタなんてなかったし、Waylandが排除するために存在している余計な往復(ラウンドトリップ)も必要なかった。xlibreみたいなプロジェクト(あるいは復活したX.org)が、コンポジタが埋めるはずだった溝を埋めるためにX11プロトコルを更新する余地はないのかな。個人的には、手持ちのマシンを全部LXDEに移行してるところ。どうやら気づかないうちに、コンポジタのないデスクトップに逆戻りしてたみたいだ。高フレームレートも、V-Sync/ティアリングフリーも、高DPIも問題なく動いてる。フラクショナルスケーリングも、無効にしてるけどちゃんと機能する。個人的には、こういう仮説上のX11開発者たちには、HDMI VRRの逆コンパイル(今は弁護士に止められてるけど)や、HDR、色域の拡大とかに注力してほしいかな。