Waylandとは何か、Linuxユーザーにとっての意味は?

Wayland Linuxの特徴画像

Linuxデスクトップを使用している場合、ディスプレイサーバーと対話しています。この重要なソフトウェアは、ウィンドウやメニュー、マウスポインターなど、画面上に表示されるすべてを描画する役割を担っています。数十年にわたり、Xorg(X11)ディスプレイサーバーが標準でした。しかし、コンピューティングニーズが進化する中で、Waylandという現代的な代替手段が登場し、徐々に新しいデフォルトになりつつあります。

この記事では、Waylandとは何か、どのように機能するか、Xorgとの比較を説明します。

Waylandとは

Waylandは、アプリケーションがディスプレイサーバーとどのように相互作用し、グラフィックスをレンダリングし、クリックやテキストなどのユーザー入力を処理するかを指定する現代的なディスプレイプロトコルです。2008年頃に、1984年から2010年代中盤までLinuxを支配していたXウィンドウシステム(X)の軽量で安全かつ効率的な代替手段として導入されたWaylandは、現代のグラフィックスハードウェアやディスプレイに最適化されています。一部のレガシーアプリケーションではXがまだ使用されていますが(しばしばXWaylandを介して)、2025年までにWaylandは多くのLinuxディストリビューションにおいてデフォルトとなっています。

XがXorgのような別のディスプレイサーバーに依存しているのに対して、Waylandはディスプレイサーバーとウィンドウマネージャーをコンポジタという単一のエンティティに統合します。たとえば、GNOMEは自分のコンポジタであるMutterを使用し、KDE PlasmaはKWinを使用します。これらのコンポジタは、libwayland(またはSwayのような小型コンポジタ用のwlroots)を使用して、グラフィックスハードウェアに直接通信し、フレームバッファにデータを書き込むためのライブラリを介します。これにより、Xorgのような中間者が不要になり、パフォーマンスの向上とスムーズなレンダリングが実現します。

Waylandの特徴

  • 開発、保守、デバッグを容易にするシンプルで現代的なデザイン
  • アプリケーションを隔離し、互いの入力や表示データにアクセスできないようにすることでのセキュリティの向上
  • システムオーバーヘッドの削減により、低遅延、スムーズなグラフィックス、画面のティアリングの軽減
  • 高DPIディスプレイ、モニターごとのスケーリング、分数スケーリングに対する組み込みサポート
  • 一貫した視覚効果と改善されたレンダリングパフォーマンスを提供する統合コンポジタ
  • タッチスクリーン、ジェスチャー、スタイラス、その他の現代的な入力デバイスに対するネイティブサポート
  • フリッカーや視覚的アーティファクトを減少させるディスプレイ(VSync)とのより良い同期
  • レガシーの複雑さを回避することで、現代のハードウェアやソフトウェア要件のサポートを容易にする

Waylandの動作方法

ディスプレイサーバーは、カーネルとグラフィックスハードウェアに情報を提供し、素早くディスプレイに情報を伝えることができるようにします。これらの情報は、各プロトコルを使用して通信するアプリケーションから受信します。たとえば、Xと連携するために設計されたアプリケーションは、Waylandサーバーと通信することはできません。

Wayland Displayserver

Waylandは、XWaylandと呼ばれるものを介してこれを解決します。XWaylandは互換性レイヤーとして機能し、Xのクライアントサーバーの相互作用をWaylandが理解できる形に翻訳します。

Waylandでは、サーバーとコンポジタが一体となります。Waylandを使用するすべてのデスクトップ環境は、ウィンドウの透明度、ぼかし、遷移アニメーション、ドロップシャドウなどの効果を描画するために、Waylandプロトコルを実装したライブラリに呼び出しを行います。こうした機能がカーネルに近くなることで、グラフィカル環境でのスムーズさを体験できるでしょう。

サードパーティのソフトウェアを介さずに、Waylandコンポジタはカーネル内のと呼ばれるDirect Rendering Manager(DRM)バッファに呼び出しを行い、描画を行います。

Waylandでは、手順がはるかにシンプルで、プロセスが直感的であることに気づくでしょう。これにより、グラフィック集約的な状況でのパフォーマンスが向上し、開発者がこのプロトコルの下で動作するアプリケーションを作成することが容易になります。

Waylandを試す方法

多くの現代的なLinuxディストリビューション、特に最近のバージョンのGNOMEやKDE Plasmaを使用しているものは、Waylandをデフォルトのディスプレイサーバーとして使用しています。

Ubuntu 24.04 LTS(ノーブル・ナンバット)では、Waylandがほとんどのシステムでデフォルトのディスプレイサーバーになっています。特にIntelまたはAMDグラフィックスを搭載したシステムにおいてです。NVIDIA GPUを使用している場合も、システムは依然としてWaylandにデフォルトします。ただし、うまくいかない場合は、この詳細なガイドに従い、NvidiaグラフィックスカードでWaylandを動作させてください。

WaylandまたはXorgを使用しているかを確認するには、ターミナルを開いて次のコマンドを実行します:

echo $XDG_SESSION_TYPE

出力がWaylandであれば、すでにWaylandを使用しています。x11と表示されていれば、Xorgを使用していることになります。

Xorgを使用している場合、ログイン画面からWaylandに移行することができます。歯車アイコンやセッションメニュー(通常サインインボタン付近にあります)を探し、クリックしてUbuntuまたはWayland上のUbuntu、またはGNOMEクラシックを選択します。その後、通常どおりにログインしてください。

ログイン画面からWaylandに切り替える

: ライブセッション(たとえば、USBドライブからのUbuntu 24.04.1)を実行している場合、XorgとWaylandの間で切り替えるオプションは利用できないかもしれません。

他のディストリビューションでも、現在のバージョンのGNOMEまたはKDE Plasmaを使用していれば、Waylandを使用するオプションがあります。

FedoraとArch LinuxでWaylandを試す

Fedoraは、GNOMEおよびKDE Plasmaデスクトップ環境の両方においてWaylandをデフォルトのディスプレイサーバーとして完全に採用しています。最近のバージョンのFedoraを使用している場合、すでにWayland上にいる可能性が高いです。WaylandとX11の間での確認または切り替え手順はUbuntuと似ています。サインアウトし、ログイン画面の歯車アイコンをクリックし、適切なセッションを選択してください。

Arch LinuxおよびGNOMEユーザーの場合、gnomeおよびgnome-sessionパッケージをインストールする以外、追加の設定は不要です。デフォルトのディスプレイマネージャ(GDM)は、Waylandに対応しています。

sudo pacman -S gnome gnome-session

KDE Plasmaユーザーは、Waylandサポートを有効にするためにplasmaおよびplasma-workspace-waylandパッケージをインストールする必要があります。

sudo pacman -S plasma plasma-workspace-wayland

どちらの場合でも、依然としてX11に依存するアプリケーションとの互換性を確保するために、xorg-xwaylandパッケージもインストールする必要があります。

sudo pacman -S xorg-xwayland

必要なパッケージをインストールした後、ログイン画面のディスプレイマネージャのセッションメニューからWaylandセッションを選択します。

QtおよびGLFWアプリケーションのサポートを強化するために、qt5-waylandqt6-wayland、およびglfw-waylandをインストールすることを検討してください。さらに、KDEのWaylandで問題が発生した場合は、KWinデバッグコンソールを開いて問題を診断できます。

qdbus org.kde.KWin /KWin org.kde.KWin.showDebugConsole

すべての設定が完了すれば、システムはWaylandで実行され、レガシーX11アプリケーションを起動することができます。

WaylandとXorg:主な違い

WaylandとXorg(X11とも呼ばれる)は、アーキテクチャと設計哲学の両方で根本的に異なります。Xorgは古いシステムであり、クライアントサーバーモデルを使用しており、Xサーバーは入力と出力を処理します。アプリケーションとハードウェアの間の中間者として機能します。時が経つにつれ、このモデルは多くの拡張やレガシーサポートのために膨張し、パフォーマンスやセキュリティの懸念(アプリケーションが互いの入力を傍受することができるなど)を引き起こしてきました。

これに対して、Waylandはシンプルで現代的になるように設計されています。クライアント(アプリケーション)がコンポジタと直接通信できるようにすることで、別々のディスプレイサーバーが不要になります。コンポジタは描画と表示の両方を処理し、セキュリティとパフォーマンスの向上をもたらします。

もう一つの重要な違いは、各システムがグラフィカル出力と入力をどのように管理するかです。XorgはCompizやMutterなどの外部ウィンドウマネージャーやコンポジタに大きく依存しています。一方、Waylandはコンポジタを直接統合しており、遅延や画面のティアリングを減らします。

Waylandを使用すべきか

Waylandのサポートは着実に成長しています。Cinnamon、XFCE、MATEなどのデスクトップ環境がWaylandサポートを追加し、多くの軽量ウィンドウマネージャーがWayland互換版を提供するようになっています。Sway(i3ユーザー向け)、dwl(dwmに基づく)、Hyprlandのような新しいツールは、Waylandのために特別に設計されており、スムーズなアニメーションなどの現代的な機能を提供します。

とはいえ、Waylandは完全ではありません。xkillのような馴染みのあるツールは、Waylandがウィンドウを処理する異なる方法のために機能しません。また、ハードウェアやソフトウェアの設定に基づいて、時折バグや制限が発生することがあります。数年間メンテナンスされていない古いアプリケーションは、Xorgなしではうまく機能しないかもしれません。

まとめ

現在の設定がスムーズに動作している場合、切り替える緊急の理由はありません―うまく機能しているものを使い続ければよいのです。しかし、フリーズや画面の動きがカクカクする問題が発生している場合は、別のディスプレイサーバーを試す価値があります。時には、ハードウェアやドライバーに基づいて、一方が他方よりも良く機能することもあります。うまく動作しない場合は、ディスプレイシステムを切り替えることで問題が解決されるかもしれません。