目的
Xwindowに変わるGUIとして、Waylandを採用してみたいので、デモ画面を表示するところまでやってみました。
環境
ホストOS:Windows11 Pro
ゲストOS:Ubuntu22.04
VM:VMware workstation 16 player
必要なもの
Python3
sudo apt install python3-pip
sudo pip install --upgrade pip
meson
ビルドシステム Waylandをビルドするのに必要です。
sudo apt install build-essential
sudo pip install meson
参考
Waylandのホームページ
アーキテクチャーの部分を読んでいただくとよいかと思います。
Weston
Waylandのコンポジター
Waylannd
git clone
作業ディレクトリを作り、Git Cloneを展開します。
git clone https://gitlab.freedesktop.org/wayland/wayland
ビルド時に、ことあるごとにERRORが出てくるので、以下のパッケージをあらかじめインストールしておきます。
必要なパッケージのインストール
apt install pkg-config libffi7 libffi-dev libxml2-dev graphviz doxygen xsltproc xmlto
build
cd wayland
meson build/ --prefix=/home/<user name>/wayland/lib #適当に決めたディレクトリ(絶対パス)
ninja -C build/ test # ビルドを実行するのに問題ないかをテストできます。
ninja -C build/ install
環境変数
XDG_RUNTIME_DIRが定義されている必要があります。
定義されているかを確認する必要があります。
ログイン時に実行したい場合、以下のようにターミナルが一般モードになっていると思います。
<login user>@<machine name>:~$
ここで、echoで確認します。
echo $XDG_RUNTIME_DIR
# ディレクトリが定義されていればOK
echoコマンドの応答に何も返ってこない場合、未定義です。
~($HOMEディレクトリ)にいる状態で、ls -aコマンドで隠しファイルを表示します・。
<login user>@<machine name>:~$ls -a
ここで、.bash_profileというファイルがなければ、作成します。
:~$ sudo touch .bash_profile
:~$ sudo vim .bash_profile
.bash_profileの内容
#!/bin/bash
if test -z "${XDG_RUNTIME_DIR}"; then
export XDG_RUNTIME_DIR=/tmp/${UID}-runtime-dir
if ! test -d "${XDG_RUNTIME_DIR}"; then
mkdir "${XDG_RUNTIME_DIR}"
chmod 0700 "${XDG_RUNTIME_DIR}"
fi
fi
プロファイルを読み込ませるためにUbuntuを再起動してください。
再起動しない場合、sourceコマンドでプロファイルを読み込みます。ただし、マシン起動時にプロファイルを正常に読み込めたかが確認できないので注意が必要。
source .bash_profile
echo $XDG_RUNTIME_DIR
# ディレクトリが定義されていればOK
Weston実行
Gitリポジトリを展開したwaylandディレクトリに移動します。
cd wayland
weston
このWeston上の左上にあるターミナルを起動して、以下のコマンドを実行すると、花が咲きます。
weston-flower
CUIからの実行
UbuntuをCUIモードでログインして、上記同様にwestonコマンドを発行すると全画面表示で同様のWindowが表示されます。
ターミナルにおいて、shutdown -hコマンドで終了することができます。