Linuxデスクトップ

journal


最近、立て続けに3回ほど、Linuxデスクトップ環境を整備した。

1) Xubuntu on x64 desktop

intel x64 のマシンに Xubuntu をインストールしてデスクトップ環境を整備した。 XFCEが好きなので、Xubuntu 24.01 を選んだ。 このマシンは、ほとんどヘッドレスで使うので、 runlevel 3 で起動していて、サービスとして tigervnc をセットアップし、そこから lightdm や XFCE が起動するような設定にした。 Xubuntu はいろいろ入っているので楽だ。 このマシンは、のちに wayland や labwc をメインで使うことになる。

2) Labwc on Raspberry pi 5

Raspberry pi 5 に Raspberry pi OS をインストールした。 これを書いている時点で、 Raspberry pi OS は、Debian bookworm ベースだ。 標準では LXDM が立ち上がるが、 raspi-config で設定することで、wayland と labwc と LXDMのいろいろなパネルが立ち上がるようにできる。 以前は Raspberry pi OS の waylandコンポジターには wayfire が使われていたらしいが、現時点では labwc がデフォルトにして唯一の選択肢だし、VNCなどもトラブルなく動く。

この環境から、引き算をしていった。

/etc/xdg/labwc に、Raspberry pi 向けにカスタマイズされた labwcの各種設定がてんこ盛りになっている。IOまわりなど重要そうなところだけ残し、いったんすべてまっさらにして、 ~/.config/labwc に全部の設定を作り直すことにした。 この軽量な labwc や wayland で色々遊んだ結果、labwcいいじゃん、ということになり、前述のx64マシンも labwc にすることにした。

3) Labwc on x64 Ubuntu

この環境は、ヘッドレスなので、labwc がヘッドレスで動くようにしたり、vncを起動したりと工夫が必要だった。

ヘッドレス起動には、seatd が必要となる。 labwc には以下の環境変数を設定してやる。

WLR_BACKENDS=headless
WLR_RENDERER=pixman

起動スクリプト autostart には色々書くことになる。 ヘッドレスディスプレイの解像度設定をする wlr-randr コマンドや、wayvnc の移動もここで行う。

wlr-randr --output HEADLESS-1 --custom-mode 1440x900@30Hz &
wayvnc &

Raspberry pi OS の autostart は全く別のかたちになっていて、 kanshi によるディスプレイ管理が入っていて、 wayvnc はsystemdサービスとスクリプトを通じて起動する仕組みになっている。いろいろ勉強になる。

waypipe による waylandプロトコル転送

2台の waylandデスクトップマシンができたので、waylandプロトコルの転送もできるようになった。waypipe を使うと、X11転送と同じようなことができる。

waypipe -c lz4 ssh {ターゲットマシン} {コマンド}

これで、例えば、サーバー機で実行しているGUIアプリを、非力な Raspberry pi に転送するようなことができる。

感想

wayland環境はまだ開発途上で、コンポジタやパネルなどのアプリケーションに機能が頻繁に追加されている。Debian / Ubuntu のリポジトリには1,2年前のバージョンが配置されているので、ネット上の情報と差異があるので注意する。manコマンドをよく見ることになる。 今回のセットアップでは、各種アプリのソースコードからのビルドは避けるようにした。Debian / Ubuntu では開発ツールのバージョンも古いので、最新版コードのビルドには失敗することが多いし、がんばってビルドを通しても、ほかの依存関係のバージョンも古いだろうから。そんな中、Rustは比較的ビルドしやすいので嬉しい。 これらの体験が良いか悪いかといえば、トレードオフということになる。 特に Raspberry pi は特殊なハードウェアなので、トライアンドエラーを楽しみたいのでもない限り、Raspberry pi OS によるきめ細やかなハードウェアサポートはとても助かる。 x64マシンのほうは、近いうちに Manjaro Linux に切り替えて、最新のパッケージや、ビルド環境を入れてみようかな。 他のWaylandコンポジターにも興味があるが、情報をざっと見る限り、Labwcが一番気に入っていて、他は試せていない。 自分だけの特殊事情として、とにかくリモートコンピューティング大好き、ってことがある。一日中PCの前にいるわけではなく、あちこち移動するし、色んなデバイスからログインする。複数のレイアウトのキーボードを使うし、なんなら物理キーボードは使わずに iPad越しにデスクトップマシンをいじることも多い。VNCや、ブラウザ経由のcode-serverが常套手段。そんななかVNCは、いくつかの大事なキーを伝達できず取りこぼす。キーボード操作必須だったり重きを置きすぎているコンポジターは自分には合わないんだ。

それでは。