「Wayland」の版間の差分
細 |
|||
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 はただのライブラリなので、それだけでは使い物になりません。 |
+ | 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 公式ウェブサイト] も参照してください。 |
|
− | ===GTK+=== |
+ | === GTK+ 3 === |
− | 公式リポジトリ |
+ | 公式リポジトリの {{pkg|gtk3}} は Wayland バックエンドが有効になっています。 |
GTK+ 3.0 から、GTK+ は実行時に複数のバックエンドをサポートできるようになり、Qt の lighthouse と同じ方法でバックエンドを切り替えることができるようになりました。 |
GTK+ 3.0 から、GTK+ は実行時に複数のバックエンドをサポートできるようになり、Qt の lighthouse と同じ方法でバックエンドを切り替えることができるようになりました。 |
||
182行目: | 196行目: | ||
=== Qt5 === |
=== Qt5 === |
||
− | + | {{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行目: | ||
==ウィンドウマネージャとデスクトップシェル== |
==ウィンドウマネージャとデスクトップシェル== |
||
− | === |
+ | ===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=== |
||
− | + | 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/ 全く新しいプロジェクトが始められています] 。 |
− | === |
+ | ===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 |
||
− | + | === 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 |
||
− | + | === 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 は 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
バージョン 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