Waylandについて

Waylandについて自分なりに調べてわかったことを備忘として書きます。

  1. Waylandとは?
    WaylandというのはX11に変わると期待されている新しいディスプレイ用プロトコル
    現在これを利用したウィンドウマネージャー(以下、WM)やアプリが開発中です。

  2. Waylandで実装されたWM
    Waylandで実装されたWMとして、Weston(正確にはWaylandコンポジタ)、Mutter、Gnome3などがあります。
    また、Ubuntuは17.10からXorgからWaylandに変更されたようです。
    僕はGentoo Linux上でWestonを試しました。

  3. 従来のXアプリについて
    従来のXアプリはWayland上では動きません。FirefoxChromium、fcitxなどがそれに該当します。
    それらのアプリをWayland上で実行できるようにするためにXWaylandというコンポーネントが用意されています。

  4. Gentoo上のGnome3について
    僕は現在、Gentoo上でGnome3を使っています。
    Waylandを調べていくうちに、Gnome3はX11とWaylandのどちらでも動くということがわかりました。
    そのため、今自分が使っているGnomeはどちらで動いているのか知りたくなり、調べる方法を探しましたが、見つかりませんでした。
    正確には幾つか試してみたのですが、X11、Waylandのどちらなのか判別できませんでした。
    試したのは以下のものです。
    echo $XDG_SESSION_TYPE
    Waylandで動いている場合「Wayland」と表示される。
    結果:何も表示されず
    ps -ef | grep gnome-shell
    Waylandで動いている場合「--wayland --display-server」と表示される。
    結果:表示されず
    echo $DESKTOP_SESSION
    Waylandで動いている場合「Wayland」と表示される。
    結果:何も表示されず
    loginctl show-session 1 -p Type
    Waylandで動いている場合「Type=Wayland」と表示される。
    結果:「Type=tty」と表示される
    env | grep -i wayland
    Waylandで動いている場合何かが表示されるという曖昧なもの
    結果:何も表示されず
    ちなみにWestonでは「WAYLAND_DISPLAY=wayland-0」という文字列が表示されました
    という訳でX11なのかWaylandなのかわかりませんでした。
    どなたかご存知の方がいらっしゃったら、教えてください。
    宜しくお願い致します。

  5. weston.iniについて
    weston weston-launch 等でWestonを起動したときに、読み込まれます。
    僕は ~/.config/weston.ini としています。置く場所は自分で環境変数を使って定義することもできます。
    このファイルでアイコンやモニター、スクリーンセイバーの設定ができます。
    Waylandではxrandrが使えないため、モニターの設定はこのファイルで定義する必要があります。(現在、思考錯誤中)
    以下のサイトに詳しいリファレンスがあります。
    https://www.carta.tech/man-pages/man5/weston.ini.5.html
  6. 最後に
    まだまだWaylandについて勉強不足です。
    もう少しわかるようになったら、Waylandアプリなどを作ってみたいなあと思っています。