コンテンツにスキップ

「Wayland」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
細編集の要約なし
編集の要約なし
13行目: 13行目:
'''Wayland''' は Linux の新しいウィンドウプロトコルです。Wayland を利用するためには一部のソフトウェアの変更と再インストールが必要になります。Wayland について詳しくは[http://wayland.freedesktop.org/ ホームページ]を見て下さい。
'''Wayland''' は Linux の新しいウィンドウプロトコルです。Wayland を利用するためには一部のソフトウェアの変更と再インストールが必要になります。Wayland について詳しくは[http://wayland.freedesktop.org/ ホームページ]を見て下さい。


{{Warning|Wayland は開発途上です。サポートはありませんし、あなたの期待通りに動作するとは限りません。}}
{{Warning|Wayland は開発途上です。まだ機能は完全ではありません。}}


== 要件 ==
== 要件 ==
22行目: 22行目:


== 使用方法 ==
== 使用方法 ==
Wayland はただのライブラリなので、それだけでは使い物になりません。利用するには、(Weston などの) コンポジタ、Weston デモアプリケーション、Wayland プラグインの入った Qt5、Wayland をサポートした GTK+ などが必要です。
Wayland はただのライブラリなので、それだけでは使い物になりません。X サーバーを置き換えるには、(Weston などの) コンポジタが必要です。


== Weston ==
== Weston ==
156行目: 156行目:
[[公式リポジトリ]]から {{Pkg|xorg-server-xwayland}} をインストールしてください。
[[公式リポジトリ]]から {{Pkg|xorg-server-xwayland}} をインストールしてください。


Weston の中で X アプリケーションを動かすには、Xwayland を使ってリクエストを処理します。
Weston の中で X アプリケーションを動かすには、Xwayland を使ってリクエストを処理させます。以下の設定ファイルを作成してください:

{{Note|Weston 1.4 以前では新しい Xwayland をサポートしていません。また、GNOME 3.12 もまだ対応していません。}}

Wayland の中でネイティブの X アプリケーションを動かしたい場合、以下の設定ファイルを作成・修正してください:
{{hc|~/.config/weston.ini|
{{hc|~/.config/weston.ini|
<nowiki>[core]
<nowiki>[core]
modules=xwayland.so,desktop-shell.so</nowiki>
modules=xwayland.so,desktop-shell.so</nowiki>
}}
}}
これで X アプリケーションを weston で動作させることができます。


==== スクリーンキャスト録画 ====
wayland で GNOME 3.12 を動かしたい場合は、多少のハックが必要です。[http://www.reddit.com/r/LinuxActionShow/comments/254hwo/howto_run_gnome_312_on_wayland_on_arch/ このガイド] を参照してください。
Weston にはスクリーンキャスト機能が備わっており、{{ic|Super + R}} キーを押すことで録画を開始・停止することができます。スクリーンキャストは Weston のカレントディレクトリ内の {{ic|capture.wcap}} ファイルに保存されます。

WCAP ファイルは Weston 専用のロスレス動画フォーマットで、フレーム間の差異だけを記録しています。記録されたスクリーンキャストを再生するには、WCAP ファイルをメディアプレイヤーが再生できるフォーマットに変換する必要があります。

ファイルを webm に変換するには、次を実行:

$ wcap-decode capture.wcap --yuv4mpeg2 | vpxenc --target-bitrate=1024 --best -t 4 -o foo.webm -

ファイルを ogv に変換するには、次を実行:

$ wcap-decode capture.wcap --yuv4mpeg2 | theora_encode - -o cap.ogv

==== HiDPI ディスプレイ ====
"Retina" または "[[HiDPI]]" のディスプレイでは以下を使用してください:
{{hc|~/.config/weston.ini|<nowiki>
[output]
name=...
scale=2
</nowiki>}}


== GUI ライブラリ ==
== GUI ライブラリ ==
([http://wayland.freedesktop.org/toolkits.html 公式ウェブサイト] も参照してください)
[http://wayland.freedesktop.org/toolkits.html 公式ウェブサイト] も参照してください。


===GTK+===
=== GTK+ 3 ===


公式リポジトリから {{pkg|gtk3}} をインストールしてください、Wayland のバックエンドが有効になっています。
公式リポジトリの {{pkg|gtk3}} は Wayland バックエンドが有効になっています。


GTK+ 3.0 から、GTK+ は実行時に複数のバックエンドをサポートできるようになり、Qt の lighthouse と同じ方法でバックエンドを切り替えることができるようになりました。
GTK+ 3.0 から、GTK+ は実行時に複数のバックエンドをサポートできるようになり、Qt の lighthouse と同じ方法でバックエンドを切り替えることができるようになりました。
182行目: 196行目:
=== Qt5 ===
=== Qt5 ===


<strike>{{Pkg|qt5-base}} を ''-opengl es2'' でリビルドする</strike>か (現在は使えません、http://lists.qt-project.org/pipermail/development/2013-December/014789.html を参照) もしくは {{AUR|qt5-base-git}} を使う必要があります。それから wayland のプラグイン {{AUR|qt5-wayland-git}} をビルドしてください。
{{Pkg|qt5-wayland}} をインストールする必要があります。Wayland プラグインを使って Qt 5 アプリケーションを動作させるには環境変数 {{ic|1=QT_QPA_PLATFORM=wayland-egl}} をセットして下さい。

Wayland プラグインを使って Qt5 アプリケーションを動作させるには環境変数 {{ic|1=QT_QPA_PLATFORM=wayland-egl}} をセットして下さい。


===Clutter===
===Clutter===
208行目: 220行目:
==ウィンドウマネージャとデスクトップシェル==
==ウィンドウマネージャとデスクトップシェル==


===KDE===
===GNOME===


{{Warning|Gnome Wayland セッションは {{pkg|xorg-server-xwayland}} をインストールしていないと起動しません。}}
⚫
KDE 4.11 beta から [http://blog.martin-graesslin.com/blog/2013/06/starting-a-full-kde-plasma-session-in-wayland/ Wayland システムコンポジタの下で KWin を動かせるように] なっています。今の所 KWin をセッションコンポジタとして使うためのサポートはありません。


バージョン 3.14 から、[[GNOME]] は Wayland を使ってデスクトップを動作させることができるようになりました。Gnome コンポジタは X を使用しなくても動かすことができ、Wayland のシステムコンポジタとして動作します。本番環境で使えるほど安定しているとされていますが、まだサポートされていない機能もいくつか存在します (Gnome のドキュメントを参照)。Gnome デスクトップでは、X を使用するアプリケーションは XWayland で動作します。
⚫
===GNOME===


バージョン 3.12 で Gnome は実験的に Wayland をサポートしていますが、{{Pkg|xorg-server-xwayland}} をインストールする必要があります。
Gnome Wayland セッションを起動するには、GDM ログインマネージャを使用する必要があります。ログインする前に "Gnome on Wayland" セッションを選択してください。
また、新しい Xwayland DDX を使用する mutter-wayland スナップショットをインストールしてください。以下の2つのファイルを使って makepkg でパッケージをリビルドできます。
[https://gist.github.com/blackout24/9e1e255962a007ae6482 PKGBUILD]
[https://gist.github.com/blackout24/84eca898dd3c2e9360e2 mutter-wayland.install]


⚫
===Hawaii===
オープンソースドライバーならどれを使っていても、GDM から特別セッションとして "Gnome on Wayland" を起動できます。
⚫
[[Hawaii]] の記事を見て下さい。


=== i3 ===
=== i3 ===


i3 の開発者によって Weston 用に i3 と同じ機能・スタイルを実装するシェルプラグインを作成する[http://www.i3way.org/ 全く新しいプロジェクトが始められています] 。
[[i3]] の開発者によって Weston 用に i3 と同じ機能・スタイルを実装するシェルプラグインを作成する[http://www.i3way.org/ 全く新しいプロジェクトが始められています] 。


===Hawaii===
===KDE===

⚫
[[Hawaii|Hawaii]] の記事を見て下さい。
⚫
KDE 4.11 から [http://blog.martin-graesslin.com/blog/2013/06/starting-a-full-kde-plasma-session-in-wayland/ Wayland システムコンポジタの下で KWin を動かせるように] なっています。今の所 KWin をセッションコンポジタとして使うためのサポートはありません。

⚫
=== Loliwm ===


[https://github.com/Cloudef/loliwm loliwm] は Wayland 用のタイル型ウィンドウマネージャです。
=== Pure Wayland ===


=== Velox ===
{{Warning|Arch Linux で純粋な (X11 を使わない) Wayland システムをインストールする手順です。ソースからコンパイルして {{ic|/usr/local}} にインストールします。あなたのシステムを破壊するかもしれませんので注意してください。}}


[https://github.com/michaelforney/velox velox] は swc ベースのシンプルなウィンドウマネージャです。[[dwm]] と [[xmonad]] の影響を受けています。
まず初めに、基本的な Arch Linux のインストールを行い、base と base-devel をインストールして下さい。xorg やそのライブラリはインストールしないで下さい。


=== Orbital ===
==== Wayland, DRM, Pixman, libxkbcommon ====


[https://github.com/giucam/orbital Orbital] は Qt5 と Weston を使用する Wayland コンポジタ・シェルです。このプロジェクトではシンプルでありながら柔軟性のある見た目の良い Wayland デスクトップを作成することを目標としています。Orbital は完全装備の DE ではなく、どちらかと言えば [[Awesome]] や [[Fluxbox]] のような X11 におけるウィンドウマネージャに似ています。
$ pacman -S wayland libdrm pixman libxkbcommon


==== Mesa ====
=== Papyros Shell ===


[https://github.com/papyros/papyros-shell Papyros Shell] は [http://papyros.io Papyros] のデスクトップシェルであり、Wayland のコンポジタとして QtQuick と QtCompositor を使用して作られています。
$ sudo pacman -S python2 libxml2 llvm
$ git clone <nowiki>git://anongit.freedesktop.org/mesa/mesa</nowiki>
$ 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 ====
=== Maynard ===


[https://github.com/raspberrypi/maynard Maynard] は GTK ベースの Weston 用デスクトップシェルクライアントです。Tiago Vignatti によるプロジェクト、weston-gtk-shell に基づいています。
{{Note|glx/gl や xcb ではなく、EGL だけです。}}


=== Motorcar ===
$ pacman -S libpng
$ git clone <nowiki>git://anongit.freedesktop.org/cairo</nowiki>
$ cd cairo
$ CFLAGS=-DMESA_EGL_NO_X11_HEADERS ./autogen.sh --prefix=/usr/local/ --disable-xcb --enable-glesv2
$ make
$ sudo make install


[https://github.com/evil0sheep/motorcar Motorcar] は 3D ウィンドウを探検できる wayland コンポジタです。
⚫
==== weston ====
$ sudo pacman -S gegl mtdev
''(libgl にはオプションから mesa-gl を選択して下さい)''
$ git clone <nowiki>git://anongit.freedesktop.org/wayland/weston</nowiki>
$ 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


==トラブルシューティング==
==トラブルシューティング==

2015年2月11日 (水) 22:54時点における版

Wayland は Linux の新しいウィンドウプロトコルです。Wayland を利用するためには一部のソフトウェアの変更と再インストールが必要になります。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...

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 を使ってリクエストを処理させます。以下の設定ファイルを作成してください:

~/.config/weston.ini
[core]
modules=xwayland.so,desktop-shell.so

スクリーンキャスト録画

Weston にはスクリーンキャスト機能が備わっており、Super + R キーを押すことで録画を開始・停止することができます。スクリーンキャストは Weston のカレントディレクトリ内の capture.wcap ファイルに保存されます。

WCAP ファイルは Weston 専用のロスレス動画フォーマットで、フレーム間の差異だけを記録しています。記録されたスクリーンキャストを再生するには、WCAP ファイルをメディアプレイヤーが再生できるフォーマットに変換する必要があります。

ファイルを webm に変換するには、次を実行:

$ wcap-decode capture.wcap --yuv4mpeg2 | vpxenc --target-bitrate=1024 --best -t 4 -o foo.webm -

ファイルを ogv に変換するには、次を実行:

$ wcap-decode capture.wcap --yuv4mpeg2 | theora_encode - -o cap.ogv

HiDPI ディスプレイ

"Retina" または "HiDPI" のディスプレイでは以下を使用してください:

~/.config/weston.ini
[output]
name=...
scale=2

GUI ライブラリ

公式ウェブサイト も参照してください。

GTK+ 3

公式リポジトリの gtk3 は Wayland バックエンドが有効になっています。

GTK+ 3.0 から、GTK+ は実行時に複数のバックエンドをサポートできるようになり、Qt の lighthouse と同じ方法でバックエンドを切り替えることができるようになりました。

Wayland と X 両方のバックエンドが有効になっているとき、GTK+ ではデフォルトで X11 バックエンドを使いますが、GDK_BACKEND=wayland 環境変数を設定することでこれを上書きできます。

Qt5

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 をサポートする予定です。コンパイルフラグで有効にします。それまでは AUR からパッケージ glfw3-gitAUR をインストールして cmake のフラグに -DGLFW_USE_WAYLAND=ON を追加してください。

EFL

EFL は Wayland を完全にサポートしています。Wayland で EFL アプリケーションを動かすには、Wayland の プロジェクトページ を見て下さい。

ウィンドウマネージャとデスクトップシェル

GNOME

警告 Gnome Wayland セッションは xorg-server-xwayland をインストールしていないと起動しません。

バージョン 3.14 から、GNOME は Wayland を使ってデスクトップを動作させることができるようになりました。Gnome コンポジタは X を使用しなくても動かすことができ、Wayland のシステムコンポジタとして動作します。本番環境で使えるほど安定しているとされていますが、まだサポートされていない機能もいくつか存在します (Gnome のドキュメントを参照)。Gnome デスクトップでは、X を使用するアプリケーションは XWayland で動作します。

Gnome Wayland セッションを起動するには、GDM ログインマネージャを使用する必要があります。ログインする前に "Gnome on Wayland" セッションを選択してください。

Hawaii

Hawaii の記事を見て下さい。

i3

i3 の開発者によって Weston 用に i3 と同じ機能・スタイルを実装するシェルプラグインを作成する全く新しいプロジェクトが始められています 。

KDE

KDE 4.11 から Wayland システムコンポジタの下で KWin を動かせるように なっています。今の所 KWin をセッションコンポジタとして使うためのサポートはありません。

Loliwm

loliwm は Wayland 用のタイル型ウィンドウマネージャです。

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

参照