Wayland
Linuxカーネルのevdevモジュールは、イベントを受けとり、Waylandコンポジタへ送る。
Waylandコンポジタはシーングラフを見渡し、どのウィンドウがそのイベントを受け取るべきかを決定する。 シーングラフは画面に表示されているものに対応しており、Waylandコンポジタはイベントが適用されるシーングラフ内の要素との変換が分かる。そのため、Waylandコンポジタは逆変換することで、正しいウィンドウが分かり画面上の座標をウィンドウ内の座標へ変換することができる。ウィンドウに適用できる変換は、コンポジターが適用できることだけに限られ、入力イベントに対して逆変換できることに限られます。
Xの場合、クライアイントはイベントを受け取ると、反応してUIを更新する。しかし、Waylandの場合、クライアントはEGLを通じてレンダリングし、コンポジタへ更新された範囲を通知するために要求を送るだけである。
Waylandコンポジタはクライアントから変更箇所のリクエストを集め、スクリーンを再構成する。それからコンポジタは、KMS(英語版)による画面の再描画をスケジューリングするため、ioctlを直接発行する。
Waylandは、コンポジット型ウィンドウマネージャが、アプリケーションやグラフィクスハードウェアと直接通信できるようにするための方法を提供する。Waylandはグラフィクス周りのみに特化しており、入力ハードウェアとの通信には他のライブラリを使用することを想定している。Wayland環境下ではコンポジット型ウィンドウマネージャがディスプレイサーバとなる。
Westonは、Waylandコンポジタのリファレンス実装であり Waylandプロジェクトによって開発されている。Cで書かれており、MITライセンスの下で公開されている。Westonは、Linuxカーネルの特定の機能に依存しているため、公式にはLinuxのみサポートしている。Westonが依存している機能は、カーネルモードセッティング(英語版)、Graphics Execution Manager (GEM) 、udevである。これらは、他のUnixライクOSには実装されていない。Linuxで実行するとき、evdev(英語版)によってハードウェアの入力を運用する。一方、バッファの運用は、ジェネリックバッファマネジメント (GBM) (英語版)に依存している。しかし、2013年にWestonのFreeBSD向けのプロトタイプportがアナウンスされた。
Westonは、HDCPをサポートしている。
XからWaylandへの置き換えを進めているデスクトップ環境には、GNOME、KDE Plasma 5やEnlightenmentがある。
2015年11月、Enlightenment e20は、完全なWaylandサポートをアナウンスした。
GNOME 3.20は、完全なWaylandセッションを持つ最初のバージョンである。GNOME 3.22は、GTK, Mutter, GNOME Shellを通してWaylandのサポートを改善した。GNOME 3.24は、Wayland下での商用NVidiaドライバをサポートした。
先行してKWin 4.11 が実験的にWaylandをサポートしていたが、KDE PlasmaによるWaylandのサポートは、Plasma 5のリリースまで遅れた。 Plasma バージョン5.4は、Waylandセッションをサポートした最初のバージョンである。2020年の間、KlipperはWaylandへ移行し、次の2020年10月にリリースされる次の5.20ではスクリーンキャスティングとレコーディングを改良することを目標としている。
Xでは、コンポジットはオプションであるが、Waylandでは必須である。Xでのコンポジットは"能動的"、つまり、コンポジタはすべてのピクセルデータを自分で取り出さなければならない。これは遅延を生む。Waylandでは、コンポジットは"受動的"である。つまり、コンポジタはピクセルデータをクライアントから直接受け取る。