Wayland
バージョン1.16では、X.Orgサーバがxf86-input-libinputと呼ばれるラッパによって、libinputライブラリをサポートした。
Waylandセキュリティモジュールは、LinuxカーネルにおけるLinuxセキュリティモジュールインタフェースに似た位置づけである。
(とくにアクセシビリティに関連した)いくつかのアプリケーションは、高い権限(特権)を必要とする。これらの権限は、Waylandコンポジタに共通して持たれる。現在October 2014、Waylanにおけるアプリケーションは、一般的にスクリーンショットや入力イベントの発行といったセンシティブな処理は、いずれも実行できない。Waylandの開発者達は、特権を付与されたクライアントを安全に処理するための実行可能な方法を積極的に探しており、クライアント用の特権を持たせるインタフェースを設計している。
Wayland Security Moduleは、コンポジタ内でのセキュリティの決定を、一元化されたセキュリティ決定エンジンに移譲する方法である。
Waylandプロトコルは、シンプルであるように設計された。そのためウィンドウシステム全体を構築するためには、追加のプロトコルやインタフェースを定義し実装することが必要である。2014これらの追加のインタフェースは作成中である。そのため、ツールキットは既にWaylandを完全にサポートしている一方、グラフィカルシェルの開発者達は必要な追加のインタフェースを作るためにWaylandの開発者と協力している。
2020ほとんどのLinuxディストリビューションは、Waylandをインストール直後からサポートしている。特筆すべき例を挙げると:
Fedora は、2016年11月22日にリリースしたバージョン25からWaylandをGNOME 3.22のデフォルトのデスクトップセッションとして使用開始した。X.OrgへはグラフィックドライバがWaylandをサポートできない場合のために戻れるようにしている。Fedoraは、2021年4月27日のバージョン34から、KDEデスクトップのデフォルトのセッションとしてWaylandを使い始めた。
Ubuntu は、Ubuntu 17.0 (Artful Aardvark) にてWaylandをデフォルトにした。しかし、Ubuntu 18.04 LTSにてX.Orgに戻した。Waylandはまだスクリーン共有とリモートデスクトップアプリケーションに問題を抱えており、ウィンドウマネージャのクラッシュから回復できないためであった。21.04で、Waylandを再度デフォルトにした。
Red Hat Enterprise Linux は、2019年5月7日にリリースしたバージョン8で、Waylandをデフォルトセッションにした。
Debian は、2019年7月6日にリリースしたバージョン10からGNOMEのデフォルトセッションとしてWaylandを使用している。
Slackware Linux 2020年2月20日に開発用としてWaylandを組み入れた。-現在、最終的にバージョン15.0になる予定である。
Manjaro は、2020年11月22日にリリースされたManjaro 20.2 (Nibia) のGnomeエディションでWaylandをデフォルトにした。
特筆するアーリーアダプター:
RebeccaBlackOSはDebianベースのLive USBである。このLinuxディストリビューションは、コンピュータのメインOSを変更することなしに本物のWaylandデスクトップを試す便利な方法を提供する。これは、2012年ころからWaylandを見せるために使われている。
Waylandをサポートするツールキットの一部を以下に列挙する。
Clutter(英語版) は、完全にWaylandをサポートしている。
EFL は、セレクションを除き、完全にWaylandをサポートしている。
GTK 3.20 は、Waylandを完全にサポートしている。
Qt 5 は、Waylandを完全にサポートしている。そしてWaylandコンポジタとWaylandクライアントの両方を記述するために使われる。
SDL はバージョン2.0.2でWaylandのサポートを開始した。そして、バージョン2.0.4からデフォルトで有効である。
GLFW(英語版) 3.2 は、Waylandをサポートしている。
FreeGLUT(英語版) は、最初にWaylandをサポートした。
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ではスクリーンキャスティングとレコーディングを改良することを目標としている。
Waylandをサポートするその他のソフトウェアは以下である。
Intelligent Input Bus は、Waylandでの動作をサポートされ、Fedora 22で準備ができた。
RealVNC(英語版) は、2014年7月にWayland開発者プレビューを公開した。
Maliit は、Wayland下で動作するインプットメソッドフレームワークである。
kmscon(英語版) は、wltermにてWaylandをサポートしている。
Mesa は、統合されてWaylandをサポートした。
Eclipse は、2014年のGSoCプロジェクトにてWayland上で動作するようにされた。
Vulkan WSI (Window System Interface) は、EGLが、OpenGL ESに対するEGLやOpenGLに対するGLXと類似した目的を提供するAPI呼び出しの集合である。Vulkan WSIは、最初からWaylandサポートを含む。つまり、Vulkanは、WAYLAND KHRプラットフォームを使用する。Vulkanクライアントは何も変更していないWeston, GENEVI LayerManager, Mutter / GNOME Shell, Enlightenment, あるいは他多くのWaylandサーバで動かすことができる。WSIは、システム上の異なるGPUを見つけることを可能にし、GPUレンダリングの結果をウィンドウシステムへ表示する。
SPURV(英語版), Waylandを使用したLinuxディストリビューションで動くAndroidアプリケーション用の互換レイヤである。
Waylandをサポートする携帯および組込ハードウェアは、以下である。
GENIVIアライアンス(英語版): GENIVI in-vehicle infotainment (IVI)のための自動車産業コンソーシアムは、Waylandをサポートする。
Raspberry Pi: ラズベリーパイ財団は、Collabora(英語版)とのコラボレーションによって、Maynardをリリースした。またパフォーマンスとメモリ消費量の改善に取り組んでいる。
Jolla: Jollaから発売されたスマートフォンは、Waylandをサポートしている。Linux Sailfish OS(英語版)が他のベンダのハードウェアで使われる時、またはユーザによってAndroidデバイスにインストールされた時に標準として使われる。
Tizen: Tizenは、2.xまではin-vehicle infotainment (IVI) のセットアップでWaylandをサポートした。3.0以降は、Waylandをデフォルトにした。
作者であるKristian Høgsbergは、LinuxのグラフィックとX.Orgの開発者であり、以前はAIGLXとDRI2で勤務していた。Red Hatで勤務しているとき、2008年の空いた時間のプロジェクトとしてWaylandの開発を始めた。最初の目標は、"すべてのフレームは完璧である、つまり、それによってアプリケーションは、テアリング、ラグ、再描画、ちらつきを二度と目にしないよう十分にレンダリングをコントロールできる"システムであった。根底となるコンセプトが"固まった"とき、Høgsbergはちょうどマサチューセッツ州Wayland(英語版)の街を運転していたため、その名前がつけられた。
2010年10月に、Waylandはfreedesktop.orgのプロジェクトになった。移行の一環として、プロジェクトの中心となる議論と開発の場がGoogle グループからWayland-develメーリングリストに置き換えられた。
Waylandクライアントとサーバのライブラリは、当初MITライセンスの下でリリースされた一方、コンポジタのリファレンス実装であるWestonといくつかのクライアントの例は、GNU General Public License version 2を使用した。その後、すべてのGPLのコードは、"コードがリファレンス実装と実際のライブラリとの間をより容易に移動できるよう"MITライセンスに再ライセンスされた(英語版)。2015年には、Waylandで使用していたラインセスの文言が、古いバージョンのMITライセンスとわずかに異なっていたことが見つかった。ライセンスの文言はX.Orgプロジェクトで使われてる(MIT Expat Licenseとして知られる)現在のバージョンのものへ更新された。
Waylandは、DRI2サポートによってすべてのMesa 3D互換ドライバで動作し、同様にHybrisプロジェクト(英語版)を通じてAndroidドライバで動作する。