Wayland
Wayland は Linux の新しいウィンドウプロトコルです。Wayland を利用するためには一部のソフトウェアの変更と再インストールが必要になります。Wayland について詳しくはホームページを見て下さい。
要件
今のところ Wayland は KMS を利用しているシステムでしか動作できません。
インストール
ほとんどの場合 gtk2 や gtk3 の依存パッケージとして既に間接的に Wayland がインストールされているはずです。インストールされていない場合、公式リポジトリから wayland をインストールしてください。
使用方法
Wayland はただのライブラリなので、それだけでは使い物になりません。X サーバーを置き換えるには、(Weston などの) コンポジタが必要です。
Weston
インストール
公式リポジトリから weston をインストールする必要があります。
使用方法
Weston をインストールしたのなら Wayland をテストする環境が整っているはずです。
起動中の X セッションの中で Weston を実行することができます:
$ weston
もしくは、Weston をネイティブで起動するには、端末を切り替えて次を実行して見て下さい:
$ weston-launch
Weston の TTY からデモを実行できます。ターミナルエミュレータを起動するには:
$ weston-terminal
画面に花を散らすには:
$ weston-flower
フレームプロトコルをテストするには (glxgears
を実行):
$ weston-gears
画像を表示するには:
$ weston-image image1.jpg image2.jpg...
設定
キーボードレイアウト・モジュール・UI の設定ファイルの例です。詳しくは man weston.ini
を見て下さい。
~/.config/weston.ini
[core] ### uncomment this line for xwayland support ### #modules=xwayland.so [shell] background-image=/usr/share/backgrounds/gnome/Aqua.jpg background-color=0xff002244 panel-color=0x90ff0000 locking=true animation=zoom #binding-modifier=ctrl #num-workspaces=6 ### for cursor themes install xcursor-themes pkg from Extra. ### #cursor-theme=whiteglass #cursor-size=24 ### tablet options ### #lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png #lockscreen=/usr/share/backgrounds/gnome/Garden.jpg #homescreen=/usr/share/backgrounds/gnome/Blinds.jpg #animation=fade [keyboard] keymap_rules=evdev #keymap_layout=gb #keymap_options=caps:ctrl_modifier,shift:both_capslock_cancel ### keymap_options from /usr/share/X11/xkb/rules/base.lst ### [terminal] #font=DroidSansMono #font-size=14 [launcher] icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png path=/usr/bin/gnome-terminal [launcher] icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png path=/usr/bin/weston-terminal [launcher] icon=/usr/share/icons/hicolor/24x24/apps/firefox.png path=/usr/bin/firefox [launcher] icon=/usr/share/icons/gnome/24x24/apps/arts.png path=./clients/flower [screensaver] # Uncomment path to disable screensaver path=/usr/libexec/weston-screensaver duration=600 [input-method] path=/usr/libexec/weston-keyboard ### for Laptop displays ### #[output] #name=LVDS1 #mode=1680x1050 #transform=90 #[output] #name=VGA1 # The following sets the mode with a modeline, you can get modelines for your preffered resolutions using the cvt utility #mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync #transform=flipped #[output] #name=X1 #mode=1024x768 #transform=flipped-270
最小設定の weston.ini
:
~/.config/weston.ini
[core] modules=xwayland.so [keyboard] keymap_layout=gb [launcher] icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png path=/usr/bin/weston-terminal [launcher] icon=/usr/share/icons/hicolor/24x24/apps/firefox.png path=/usr/bin/firefox [output] name=LVDS1 mode=1680x1050 transform=90
XWayland
公式リポジトリから xorg-server-xwayland をインストールしてください。
Weston の中で X アプリケーションを動かすには、Xwayland を使ってリクエストを処理させます。以下の設定ファイルを作成してください:
~/.config/weston.ini
[core] modules=xwayland.so
スクリーンキャスト録画
Weston にはスクリーンキャスト機能が備わっており、Super+r
キーを押すことで録画を開始・停止することができます。スクリーンキャストは Weston のカレントディレクトリ内の capture.wcap
ファイルに保存されます。
WCAP ファイルは Weston 専用のロスレス動画フォーマットで、フレーム間の差異だけを記録しています。記録されたスクリーンキャストを再生するには、WCAP ファイルをメディアプレイヤーが再生できるフォーマットに変換する必要があります。まず、録画した動画を YUV ピクセル形式に変換してください:
$ wcap-decode capture.wcap --yuv4mpeg2 > capture.y4m
作成された YUV ファイルは FFmpeg を使うことで他のフォーマットに変換できます。
HiDPI ディスプレイ
Retina または HiDPI のディスプレイでは以下を使用してください:
~/.config/weston.ini
[output] name=... scale=2
シェルのフォント
Weston はウィンドウのタイトルバーや時計などにデフォルトの sans-serif フォントを使用します。フォントを変更する方法はフォント設定#フォントの置き換えを見て下さい。
GUI ライブラリ
公式ウェブサイト も参照してください。
GTK+ 3
公式リポジトリの gtk3 は Wayland バックエンドが有効になっています。
GTK+ 3.0 から、GTK+ は実行時に複数のバックエンドをサポートできるようになり、Qt の lighthouse と同じ方法でバックエンドを切り替えることができるようになりました。
Wayland と X 両方のバックエンドが有効になっているとき、GTK+ ではデフォルトで X11 バックエンドを使いますが、GDK_BACKEND=wayland
環境変数を設定することでこれを上書きできます。
Qt5
qt5 パッケージは Wayland をサポートしています (qt5-wayland のインストールが必要です)。Wayland プラグインを使って Qt 5 アプリケーションを動作させるには環境変数 QT_QPA_PLATFORM=wayland-egl
をセットして下さい。
Clutter
Clutter ツールキットには Wayland バックエンドがあり、Clutter を Wayland のクライアントとして動作させることが可能です。このバックエンドは extra に入っている公式パッケージで有効になっています。
Clutter アプリを Wayland 上で動作させるには、環境変数 CLUTTER_BACKEND=wayland
を設定する必要があります。
SDL
SDL 2.0.2 から実験的に wayland がサポートされており、Arch Linux ではデフォルトで有効になっています。
SDL アプリケーションを Wayland 上で動作させるには、環境変数 SDL_VIDEODRIVER=wayland
を設定する必要があります。
GLFW
バージョン 3.1 から wayland を試験的にサポートしています。コンパイルフラグで有効にします。cmake のフラグに -DGLFW_USE_WAYLAND=ON
を追加してください。AUR からパッケージ glfw-wayland-gitAUR をインストールすることもできます。
EFL
EFL は Wayland を完全にサポートしています。Wayland で EFL アプリケーションを動かすには、Wayland の プロジェクトページ を見て下さい。
ウィンドウマネージャとデスクトップシェル
GNOME
バージョン 3.14 から、GNOME は Wayland を使ってデスクトップを動作させることができるようになりました。Gnome コンポジタは X を使用しなくても動かすことができ、Wayland のシステムコンポジタとして動作します。本番環境で使えるほど安定しているとされていますが、まだサポートされていない機能もいくつか存在します (Gnome のドキュメントを参照)。Gnome デスクトップでは、X を使用するアプリケーションは XWayland で動作します。
Gnome Wayland セッションを起動するには、GDM ログインマネージャを使用する必要があります。ログインする前に "Gnome on Wayland" セッションを選択してください。
Hawaii
Hawaii の記事を見て下さい。
Enlightenment
E19 から Wayland に対応していましたが、現在は削除されており、E20 以上が通常の利用に耐えうるほど Wayland で安定動作するとされています。詳しくは [1] を参照。
KDE
KDE#Wayland を見てください。
Loliwm
loliwm は Wayland 用のタイル型ウィンドウマネージャです。
sway
Sway は Wayland 用の i3 互換のウィンドウマネージャです。
Velox
Velox は swc ベースのシンプルなウィンドウマネージャです。dwm と xmonad の影響を受けています。
Orbital
Orbital は Qt5 と Weston を使用する Wayland コンポジタ・シェルです。このプロジェクトではシンプルでありながら柔軟性のある見た目の良い Wayland デスクトップを作成することを目標としています。Orbital は完全装備の DE ではなく、どちらかと言えば Awesome や Fluxbox のような X11 におけるウィンドウマネージャに似ています。
Papyros Shell
Papyros Shell は Papyros のデスクトップシェルであり、Wayland のコンポジタとして QtQuick と QtCompositor を使用して作られています。
Maynard
Maynard は GTK ベースの Weston 用デスクトップシェルクライアントです。Tiago Vignatti によるプロジェクト、weston-gtk-shell に基づいています。
Motorcar
Motorcar は 3D ウィンドウを探検できる wayland コンポジタです。
トラブルシューティング
LLVM assertion failure
LLVM assertion failure になるときは、この問題が修正されるまで Gallium LLVM なしで mesa をリビルドする必要があります。
これは LLVM を必要とするドライバを無効にしてしまう可能性があります。ハードウェアドライバに問題が発生するときは、以下の export を試して下さい:
$ export EGL_DRIVER=/usr/lib/egl/egl_gallium.so
1.7 にアップデートしてから Weston が起動しない
おそらく weston.ini
によって desktop-shell.so
モジュールがロードされているのが原因です。以前はこのモジュールが必要でしたが、現在は要らなくなっています。
モジュールを削除するには、以下のようになっている行を探して:
~/.config/weston.ini
[core] modules=xwayland.so,desktop-shell.so
行から desktop-shell.so
を削除してください:
~/.config/weston.ini
[core] modules=xwayland.so
weston+xwayland の chrome/chromium でマウスのクリックが効かない
Chrome/chromium は weston から起動することができますが、キーボードだけが動作し、マウスのクリックが動作しません。これは weston の バグ です。orbment など、他の wayland コンポジタなら Chrome は問題なく動作します。