Linuxを日常的に使う実験ブログ

Arch LinuxでWaylandコンポジタWestonを動かしてみる

 2015-05-25

 Arch Linux

こんにちは。今回のテーマは『Arch LinuxでWaylandコンポジタWestonを動かしてみる』です。次世代のディスプレイサーバーとして注目されているWaylandを動かして見たいと思います。ただ、Waylandはまだ開発段階のものですので今回の内容は実用的というよりは使って試してみたという内容になります。 [adsense02] 【目次】 次世代のディスプレイサーバ Wayland Waylandを動かす環境を整えよう Westonを起動する Westonのデモを動かしてみる Westonをカスタムする Weston上でXアプリケーションを動かす

次世代のディスプレイサーバ Wayland

Waylandは新しいディスプレイサーバプロトコルでありX.orgサーバーを置き換える存在として期待されています。現在UNIX界でGUI環境を構築するためにはX.orgは欠かせない存在となっていますが、拡張を重ね続けてきた結果、先進的な洗練されたUIへの対応は限界が出てきている状態です。 そこで新たなディスプレイサーバーとしてMirやWaylandが開発されています。特にWaylandは手軽に試して動かしてみることができるレベルになってきました。動作環境に制約はありますが、X上でも動かしてみることはできるのでネイティブ起動が無理な場合でも遊んでみることは可能です。

Waylandを動かす環境を整えよう

Waylandを試してみるにはコンポジターが必要です。コンポジターとしてはWestonがお手軽で良いと思います。今回はWestonを使ってwaylandを体験してみます。

Westonのインストール

次のコマンドでwestonを導入します。

$ sudo pacman -S weston

Westonを起動する

Westonを起動する方法はいくつかありますが、今回はX上とKMS環境で動かしてみます。

X上でWestonを動かす

X上で起動するには以下コマンドを入力して下さい

$ weston

これで以下の図のようにwestonが起動すると思います。 01

RDM/KMSでWestonを動かす

いわゆるコンソール画面からネイティブに起動する場合です。動作環境には制約があり、のKMSを利用できるシステムで動作します。nVidia等のプロプライエタリなドライバを使用していると動作しません。。今回はintelドライバで動かしてみます。 準備と確認 まずCUIログイン出きる環境にします。Ctrl + Atl + F2~6で端末を切り替えても良いですし、以下コマンドでディスプレイマネージャを止めて再起動してもOKです。

$ sudo systemctl disable lightdm.service

次にKMS/DRMドライバが有効か確認しておきましょう。以下コマンドを入力します。

$ lsmod | grep ‘(i915|radeon|nouveau)‘

i915,radeon,nouveauのいずれかが表示されれば動作すると思います。 起動 ではWestonを起動します。以下コマンドを実行して下さい。

$ weston-launch

Westonのデモを動かしてみる

Westonにはデモが沢山ついています。あくまでデモのため実用性はないものばかりですが、それなりに楽しいので遊んでみます。ここではデモのコマンドを数点を紹介します。

$ weston-smoke & $ weston-flower & $ weston-img <画像ファイル> &

02

Westonをカスタムする

起動したばかりのWestonは味気のない灰色の画面でありターミナルのランチャーがあるだけでどうも使い勝手が悪いです。カスタマイズするには~/.config/weston.iniを作成・編集します。

$ vim ~/.config/weston.ini

筆者は以下のように設定してみました。画像の場所等はご自身の環境に合せてください。

[core]

uncomment this line for xwayland support

#modules=desktop-shell.so,xwayland.so

[shell][/shell] background-image=/usr/share/background/wallpaper_blue.jpg background-color=0xff002244 panel-color=0xff465760 locking=true animation=zoom

[keyboard] keymap_rules=evdev keymap_layout=jp #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/weston-terminal

[launcher] icon=/usr/share/icons/hicolor/24x24/apps/firefox.png path=/usr/bin/firefox

[launcher] icon=/usr/share/icons/gnome/22x22/apps/accessories-text-editor.png path=/usr/bin/mousepad

[screensaver]

Uncomment path to disable screensaver

path=/usr/libexec/weston-screensaver duration=600

[input-method] path=/usr/libexec/weston-keyboard

カスタマイズ後にwestonを起動してみます。背景画像やパネルの色が変化しているのが分かります。また、キーレイアウトも日本語用キーボードレイアウトになっています。 03

Weston上でXアプリケーションを動かす

現在のところ多くのアプリケーションはX上で動作することを想定して作成されており、このままではWayland/Weston上では動作しません。そこでxorg-server-xwaylandを導入してWeston上でもXアプリケーションが動作するようにします。 以下コマンドでxorg-server-xwaylandをインストールします。

$ sudo pacman -S xorg-server-xwayland

~/.config/weston.iniを以下のように編集します。

[core] modules=xwayland.so

これでウェブブラウザやエディタ等のアプリケーションがWeston上で動く用になりました。Xを起動せずにDRM/KMS上でネイティブに起動すればWestonをデスクトップ環境として使用することも可能です。 ただ、日本語入力は自動起動しませんので今回はFcitxをターミナルから手動で起動しました。 画面はネイティブ(DRM/KMS上)で起動したWeston 04

最後に

X.orgに替わる次世代のウィンドウシステムと言われるWaylandですが、未だ開発途上ですので実用性というよりは遊び感覚で試してみるのが良いと思います。筆者の環境(intelグラフィックチップ)ではチラツキが多くて安定した動作とは言えない状況でした。また、スクリーンショットの撮り方などもXの手法とは異なってしまう点もあり、実用性という点ではまだまだXに分があるように感じました。ただ、GNOMEもWayland上で動くように開発が進められていますし、今後の動きに注目していきたいと思います。 [adsense]