Wayland
テンプレート:Related articles start (日本語)
Wayland は Linux の新しいウィンドウプロトコルです。Wayland を利用するためには一部のソフトウェアの変更と再インストールが必要になります。Wayland について詳しくはホームページを見て下さい。
要件
今のところ Wayland は KMS を利用しているシステムでしか動作できません。
インストール
ほとんどの場合 gtk2 や gtk3 の依存パッケージとして既に間接的に Wayland がインストールされているはずです。インストールされていない場合、公式リポジトリから wayland をインストールしてください。
使用方法
Wayland はただのライブラリなので、それだけでは使い物になりません。利用するには、(Weston などの) コンポジタ、Weston デモアプリケーション、Wayland プラグインの入った Qt5、Wayland をサポートした GTK+ などが必要です。
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...
PDF ファイルを表示するには:
$ weston-view doc1.pdf doc2.pdf...
設定
キーボードレイアウト・モジュール・UI の設定ファイルの例です。詳しくは man weston.ini
を見て下さい。
~/.config/weston.ini
[core] ### uncomment this line for xwayland support ### #modules=desktop-shell.so,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=desktop-shell.so,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 を使ってリクエストを処理します。
Wayland の中でネイティブの X アプリケーションを動かしたい場合、以下の設定ファイルを作成・修正してください:
~/.config/weston.ini
[core] modules=xwayland.so,desktop-shell.so
これで X アプリケーションを weston で動作させることができます。
wayland で GNOME 3.12 を動かしたい場合は、多少のハックが必要です。このガイド を参照してください。
GUI ライブラリ
(公式ウェブサイト も参照してください)
GTK+
公式リポジトリから gtk3 をインストールしてください、Wayland のバックエンドが有効になっています。
GTK+ 3.0 から、GTK+ は実行時に複数のバックエンドをサポートできるようになり、Qt の lighthouse と同じ方法でバックエンドを切り替えることができるようになりました。
Wayland と X 両方のバックエンドが有効になっているとき、GTK+ ではデフォルトで X11 バックエンドを使いますが、GDK_BACKEND=wayland
環境変数を設定することでこれを上書きできます。
Qt5
qt5-base を -opengl es2 でリビルドするか (現在は使えません、http://lists.qt-project.org/pipermail/development/2013-December/014789.html を参照) もしくは qt5-base-gitAUR を使う必要があります。それから wayland のプラグイン qt5-wayland-gitAUR をビルドしてください。
Wayland プラグインを使って Qt5 アプリケーションを動作させるには環境変数 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 をサポートする予定です。コンパイルフラグで有効にします。それまでは AUR からパッケージ glfw3-gitAUR をインストールして cmake のフラグに -DGLFW_USE_WAYLAND=ON
を追加してください。
EFL
EFL は Wayland を完全にサポートしています。Wayland で EFL アプリケーションを動かすには、Wayland の プロジェクトページ を見て下さい。
ウィンドウマネージャとデスクトップシェル
KDE
KDE 4.11 beta から Wayland システムコンポジタの下で KWin を動かせるように なっています。今の所 KWin をセッションコンポジタとして使うためのサポートはありません。
GNOME
バージョン 3.12 で Gnome は実験的に Wayland をサポートしていますが、xorg-server-xwayland をインストールする必要があります。 また、新しい Xwayland DDX を使用する mutter-wayland スナップショットをインストールしてください。以下の2つのファイルを使って makepkg でパッケージをリビルドできます。
オープンソースドライバーならどれを使っていても、GDM から特別セッションとして "Gnome on Wayland" を起動できます。
i3
i3 の開発者によって Weston 用に i3 と同じ機能・スタイルを実装するシェルプラグインを作成する全く新しいプロジェクトが始められています 。
Hawaii
Hawaii の記事を見て下さい。
Pure Wayland
まず初めに、基本的な Arch Linux のインストールを行い、base と base-devel をインストールして下さい。xorg やそのライブラリはインストールしないで下さい。
Wayland, DRM, Pixman, libxkbcommon
$ pacman -S wayland libdrm pixman libxkbcommon
Mesa
$ sudo pacman -S python2 libxml2 llvm $ git clone git://anongit.freedesktop.org/mesa/mesa $ cd mesa $ CFLAGS=-DMESA_EGL_NO_X11_HEADERS ./autogen.sh --prefix=/usr/local --enable-gles2 --disable-gallium-egl --with-egl-platforms=wayland,drm --enable-gbm --enable-shared-glapi --with-gallium-drivers=r300,r600,swrast,nouveau --disable-glx --disable-xlib $ make $ sudo make install
cairo
$ pacman -S libpng $ git clone git://anongit.freedesktop.org/cairo $ cd cairo $ CFLAGS=-DMESA_EGL_NO_X11_HEADERS ./autogen.sh --prefix=/usr/local/ --disable-xcb --enable-glesv2 $ make $ sudo make install
weston
$ sudo pacman -S gegl mtdev (libgl にはオプションから mesa-gl を選択して下さい) $ git clone git://anongit.freedesktop.org/wayland/weston $ cd weston/ $ CFLAGS="-DMESA_EGL_NO_X11_HEADERS" ./autogen.sh --prefix=/usr/local/ --with-cairo-glesv2 --disable-xwayland --disable-x11-compositor --disable-xwayland-test $ make $ sudo make install
トラブルシューティング
LLVM assertion failure
LLVM assertion failure になるときは、この問題が修正されるまで Gallium LLVM なしで mesa をリビルドする必要があります。
これは LLVM を必要とするドライバを無効にしてしまう可能性があります。ハードウェアドライバに問題が発生するときは、以下の export を試して下さい:
$ export EGL_DRIVER=/usr/lib/egl/egl_gallium.so