トップ/記事一覧/Waylandとは何か。GNOMEやKDEの仲間ではなく、一段下の土台だった
wayland-x11-difference-check-cover

Waylandとは何か。GNOMEやKDEの仲間ではなく、一段下の土台だった

Linuxの手順書によく出てくる「Waylandセッションで使用していること」という前提条件。その正体を調べ直しました。WaylandはGNOMEやKDEと並ぶ選択肢ではなく一段下の土台で、X11から作り直された理由はアプリ同士の分離にあります。自分の環境がどちらで動いているかの確認方法と、Ubuntu 26.04で変わった点まで実機で確かめています。

ラボ2026年8月19日公開 本日更新
目次
この記事のポイント

Linuxの手順書によく出てくる「Waylandセッションで使用していること」という前提条件。その正体を調べ直しました。WaylandはGNOMEやKDEと並ぶ選択肢ではなく一段下の土台で、X11から作り直された理由はアプリ同士の分離にあります。自分の環境がどちらで動いているかの確認方法と、Ubuntu 26.04で変わった点まで実機で確かめています。

Linuxの手順書を読んでいると、前提条件の欄に当たり前の顔で「Waylandセッションで使用していること」と書かれていることがあります。私も以前、UbuntuでLINEを動かす記事を書いたときにこの一行を前提条件として置きました。こうした条件は、満たしてさえいればそのまま先へ進めてしまうので、意味を掘らないまま通過できてしまいます。この記事では、その一行が実際に何を要求しているのかを、Ubuntu 26.04の実機で確かめながら整理します。

私の環境

この記事の確認はすべて次の環境で行っています。Windowsが入っていたノートPCに、Ubuntu 26.04 LTSをクリーンインストールしたものです。

  • OS: Ubuntu 26.04 LTS(Dell Inspiron 14 5445 / AMD Ryzen)
  • デスクトップ環境: GNOME Shell 50.1
  • 画面表示の方式: Wayland

WaylandはGNOMEやKDEの仲間ではない

手描き風の図。左は GNOME・KDE・Cinnamon・Wayland が横一列に並ぶ思いこみ、右は GNOME・KDE・Cinnamon が上段、X11 と Wayland が下段に分かれた実際の階層構造
WaylandはGNOMEやKDEと並ぶ選択肢ではなく、その一段下で画面と入力を担当します。図は当サイトで作成したものです。

まず取り違えやすいのが、Waylandの置き場所です。Linuxのデスクトップには、GNOME、KDE Plasma、Cinnamonといった見た目の選択肢があります。そこにWaylandという名前が並んで出てくるため、同じ列に新しい選択肢がひとつ増えたものとして受け取られがちです。

ですが、これは違います。Waylandは横に並ぶ仲間ではなく、一段下にいます

整理すると、こういう組み立てになっています。GNOMEやKDE Plasma、Cinnamonが担当しているのは、見た目と操作です。ウィンドウの飾り、パネル、設定画面、アプリの一覧といった、利用者が直接さわる部分を作っています。その下に、ウィンドウを実際に画面へ描いて、マウスとキーボードの入力をどのアプリに渡すかを捌く担当がいます。ここを受け持っているのがX11、またはWaylandです。

層が違うので、組み合わせが効きます。GNOMEをWaylandの上で動かすこともできますし、X11の上で動かすこともできます。KDE PlasmaもCinnamonも同じです。見た目はどちらも同じGNOMEなのに、下の土台だけが違うという状態がありえます。

かつてのUbuntuのログイン画面に「Ubuntu」と「Ubuntu on Xorg」が並んでいたのを覚えている方もいると思います。あれは上に乗るGNOMEは同じままで、下の土台だけを差し替える選択肢でした。これが「種類がひとつ増えた」ように見える原因です。

なぜX11を作り直すことになったのか

では、動いていたX11をなぜ置き換えることになったのか。ここで見落とされがちなのは、言い出したのがX11の外側の人ではなかったという点です。

Waylandは2008年、当時Red HatにいたKristian Høgsbergという開発者が始めました。この人はもともとXの開発者で、Xの描画まわりの仕組み(DRI2)を作った当人です。中で手を入れ続けてきた人が、これ以上いじるより作り直したほうが早いと判断したのが出発点でした。

X11の設計は1980年代のものです。そこに何十年ものあいだ機能を継ぎ足してきた結果、構造が複雑になり、動作の途中に不要な受け渡しが挟まるようになっていました。X11では画面を出す担当、ウィンドウを管理する担当、画面を合成する担当が別々に分かれていて、そのやり取りが遅延として積み上がります。Waylandはここを1つにまとめて、あいだを削りました。

いちばん大きな違いは、アプリ同士が覗けるかどうか

速さよりも重要な変更点があります。アプリ同士の分離です。

X11には、これがまったくありません。X11で動いているアプリは、他のアプリのウィンドウの中身を読むことができ、キーボードの入力を横から全部受け取ることができ、画面全体を撮ることもできます。許可を確認する画面も、行き来を止める仕切りもありません。

つまりX11の上では、キーボードの入力を盗み見るプログラムを、脆弱性を突くことなく普通に書けてしまいます。これは不具合ではなく、設計どおりの動作です。1980年代の設計なので、そもそも同じ画面に出ているアプリ同士は信用してよいという前提で作られているのです。当時はそれで問題がありませんでした。

Waylandはこの前提をひっくり返しました。アプリからは自分のウィンドウしか見えません。他のアプリの画面や入力に手を出すには、そのための仕組みを通して明示的に許可を取る必要があります。

「Waylandだと動かない」の正体

ここまで分かると、よく聞く話の理由が見えてきます。Waylandに切り替わってから、スクリーンショットを撮る道具、画面を共有する仕組み、リモートデスクトップ、どのアプリを使っていても効くキーボードショートカット。この手のものが軒並み動かなくなった、あるいは作り直しになりました。

これらに共通しているのは、どれも「他のアプリの画面や入力に手を出す」道具であることです。X11では素通りでできていたことが、Waylandでは許可を通さないとできなくなりました。だから作り直しが必要になったわけです。

この記事を書く準備をしていたとき、私自身もこれを踏みました。画面を撮ろうとしたのですが、X11の時代によく使われていた撮影用のコマンドがこの環境には入っておらず、入っていたのはX11向けの古いものだけでした。撮り方そのものが変わっているのです。

「Waylandは未熟だから動かないものがある」と言われがちですが、正確には「覗けないようにしたから、覗く道具が作り直しになった」ということです。不便さの話が、そのままセキュリティの話につながっています。

自分の環境がどちらで動いているか確かめる

実際に手を動かすところに入ります。まず、自分が今どちらのセッションを使っているかです。

$ echo $XDG_SESSION_TYPE
wayland

これがいちばん手軽です。waylandx11が返ります。より確実に見たい場合は、ログインセッションの情報から直接引く方法もあります。

$ loginctl show-session $(loginctl show-user $USER -p Display --value) -p Type --value
wayland

環境変数で判断しようとすると間違える

ここに落とし穴があります。「DISPLAYが設定されていればX11だろう」と考えたくなりますが、これは通用しません。私の環境で両方を見るとこうなります。

$ echo $WAYLAND_DISPLAY
wayland-0

$ echo $DISPLAY
:0

Waylandのセッションなのに、X11向けのDISPLAYも設定されています。これは、X11向けに作られたアプリをWaylandの上で動かすための橋渡し(XWayland)が用意されているためです。そちらへの接続先が入っているので、両方が埋まった状態になります。判定には使えません。

アプリごとにどちらで動いているか確かめる

セッション全体がWaylandでも、その中で動いているアプリが全部Waylandで描いているとは限りません。X11向けに作られたアプリは、先ほどの橋渡し(XWayland)を通って動いています。

どのアプリが橋渡しを通っているかは、xlsclientsというコマンドで一覧できます。ここに出てくるものがX11経由、出てこないものがWaylandで直接描いているという見方になります。

$ xlsclients
m-horikawa-Inspiron-14-5445  ibus-x11
m-horikawa-Inspiron-14-5445  ChatGPT
m-horikawa-Inspiron-14-5445  mutter-x11-frames

実行したとき、私は先日入れたChatGPTのデスクトップアプリとテキストエディタを開いていました。一覧に出てきたのはChatGPTのほうだけです。ChatGPTアプリはXWaylandを通って動いていて、テキストエディタはWaylandで直接描いているということが、これで分かります。

これはOpenAIの公式ドキュメントの記述とも一致します。あちらには、Waylandの環境では利用できる場合にXWaylandを使う、と明記されています。書いてあるとおりの動きを、手元で確認できたことになります。

ちなみに一覧のibus-x11は日本語入力に関わる部分です。同じ画面の中で、Waylandで直接描いているものとX11経由のものが混ざって動いているのが見て取れます。

Ubuntu 26.04では、GNOMEをX11で動かす選択肢がない

Ubuntu 26.04 LTS公式リリースノートのWayland sessionセクション。GNOME ShellがX.orgセッションで動かなくなったこと、KDEやXfceなどはX.orgセッションで起動できることが書かれている
出典: Ubuntu 26.04 LTS summary(Ubuntu公式リリースノート)。赤枠と注釈は当サイトによるものです。

ここが今回いちばん大きな変化です。以前は「うまく動かないならX11に戻す」という逃げ道がありました。Ubuntu 26.04では、GNOMEを使うかぎりその逃げ道がありません。

私の環境で確認すると、X11のセッションを置いておく場所がそもそも存在しません

$ ls /usr/share/xsessions/
ls: '/usr/share/xsessions/' にアクセスできません: そのようなファイルやディレクトリはありません

$ ls /usr/share/wayland-sessions/
ubuntu.desktop

選べるのはWaylandのものが1つだけです。X11のサーバ本体(xserver-xorg-core)も入っておらず、入っているのは橋渡しのXWaylandだけでした。ログイン画面で選び直すことも、設定ファイルを書き換えて戻すこともできません。

Ubuntuの公式なリリースノートにも、GNOME ShellがX.orgのセッションとして動かなくなったため、Ubuntu DesktopのセッションはWaylandのみになったと書かれています。この変更が入ったのは25.10からで、26.04はそれを引き継いだ最初のLTSです。

ただし、Ubuntu全体でX11が使えなくなったわけではありません。ここは混同しやすいところです。同じリリースノートに、KDE、Xfce、MATE、i3といった別のデスクトップ環境であれば、今でもX.orgのセッションとして起動できると明記されています。どうしてもX11が必要なら、GNOME以外を入れるという道が残っています。

また、X11向けに作られたアプリそのものは、これまでどおりXWaylandを通して動きます。なくなったのは「GNOMEをX11の上で動かす」という選択肢であって、X11のアプリが動かなくなったわけではありません。

逆に、Waylandでないと動かないものも出てきている

Waydroid公式ドキュメントのDebian/Ubuntuセクション。Waylandセッションが有効であることを確認するようNOTEで書かれている
出典: Install Instructions(Waydroid公式ドキュメント)。赤枠と注釈は当サイトによるものです。

最後に、話の向きが変わってきていることに触れておきます。ここまでは「Waylandだと動かないものがある」という話をしてきましたが、その逆も出てきました。

冒頭に書いた、私がLINEを動かすために使っているWaydroidがそれです。これはAndroidをUbuntuの中で動かす仕組みですが、Waylandが前提で、X11のセッションでは動きません。公式の導入手順にも、Waylandのセッションが有効であることを確認するように、と最初に書かれています。起動しないという相談のいちばん多い原因がここだそうです。

名前を見ると分かりやすいと思います。Waydroidは「Wayland」と「Android」を合わせた名前です。後からWaylandに対応したのではなく、最初からWaylandを前提に作られているということです。

分かってしまえば、手順書の一行が読めるようになる

まとめると、次のようになります。

  • WaylandはGNOMEやKDEと並ぶ選択肢ではなく、その一段下で画面と入力を担当する土台
  • 作り直しの理由は、複雑になりすぎたことと、アプリ同士の分離がなかったこと
  • 「Waylandだと動かない」の多くは、他のアプリを覗く道具が作り直しになったため
  • 自分のセッションはecho $XDG_SESSION_TYPE、アプリごとはxlsclientsで確認できる
  • Ubuntu 26.04ではGNOMEをX11で動かす選択肢がない。X11が要るなら別のデスクトップ環境を選ぶ

はじめに書いた「Waylandセッションで使用していること」という前提条件も、これを踏まえると読み方が変わります。あれは「AndroidをUbuntuの中で動かすには、画面と入力の土台がWaylandである必要がある」と言っていたわけです。そしてUbuntu 26.04では、そもそもGNOMEを選んだ時点で必ずWaylandになるので、この条件は確認するまでもなく満たされるようになりました。

前提条件の欄に知らない言葉が出てきたとき、意味が分かっていれば、引っかかったときに何を調べればよいかも分かります。この記事がその助けになれば幸いです。

avatar-m-1

堀川 慎

Backend Engineer / AWS / Django / Go