RPI OS Bookworm – X11とwaylandをリブートなしで一発切り替えするコマンド

RPI OS Bookwormではラズパイとして初めてwaylandが導入されました。Waylandの派手なビジュアルには心惹かれるのですが、実際にwaylandを使ってみるとchromiumで問題が起こることがあります。

chromium以外のアプリでも、細かい部分でwaylandよりもX11の方が使い勝手が良かったりして、結局X11に逆戻りしてしまったユーザー(私のことです)もいらっしゃるのではないでしょうか。

WaylandとX11は、raspi-configで切り替えられます。これを使ってwaylandとX11とを行ったり来たりしているユーザー(これも私のことです)も少なくないと思いますが、

raspi-configのメニューをたどるのが面倒

なうえに

最後リブート待ちが憂鬱

という問題があります。

そこで今回は、

憂鬱なwaylandとX11の切り替えを
リブートなしで一発実行する
魔法のコマンド
(ただのシェルスクリプトですが)

をご紹介いたします。

ラズパイ標準の機能を使って、waylandとX11を切り替える場合

伝説の一発切り替えコマンド(ただのシェルスクリプト)を解説する前に、まずは地道にラズパイの普通の切り替え手順を説明しておきましょう。

ターミナルで以下を実行します。

sudo raspi-config

表示されるメニューで、

Advanced Options > Wayland 

を選択して、X11 or Waylandを選択

設定後は再起動を促されます。これが通常のwaylandとX11の切り替え手続きです。

一発切り替えコマンドを使ってwaylandとX11を楽しく切り替えよう

それでは満を持して、本題の切り替えコマンドを解説します。魔法とか伝説とかいろいろ言ってますが、実態は私が作ったかなり簡単なシェルスクリプトです。

まずはコマンドをダウンロードして、適当なディレクトリに置いてください。

中身はcatやテキストエディタで簡単に確認できます。

ターミナルでコマンドを置いたディレクトリに移動して、sudo権限のあるユーザーで以下を実行してください。

cd コマンドを/置いた/ディレクトリ

X11に設定するときは
bash raspi-disp-switcher.sh x11

Waylandに設定するときは
bash raspi-disp-switcher.sh wayland

# なお、chmod +x などしてパスの通った場所に置けば、raspi-disp-switcher.sh x11/wayland だけで実行できます。

コマンドを実行すると、画面がリセットされてログイン画面に移行します。自動 or 手動ログインの後に、先に設定した環境でデスクトップが表示されるはずです。

トラブルシューティング: waylandで壁紙やデスクトップアイコンが表示されない

ログインと同時に実行されるはずの pcmanfm --desktop が実行されていないのが原因です。コンポジタのwayfireの仕様上、ラズパイのどこかで誰かのpcmanfmがすでに実行されている場合、新たなpcmanfmの起動は必要なしと判断して、起動を見送ってしまいます。

例えば誰かがリモートデスクトップでログインしていて、pcmanfmを起動している場合、ディスプレイからwaylandでログインしても、新たにpcmanfm --desktopが実行されることはなく、壁紙は表示されません。

これはwayfireの仕様でスクリプト側からはどうしようもありません(raspi-disp-switcher.shを使わなくても条件が揃えば起こるはずです)。どうしても解決したい場合は /etc/wayfire/defaults.ini を参考に~/.config/wayfire.iniでautostart-staticを上書きするか、/usr/bin/wfrespawn のpgrepあたりをいじるなどすると良いのではないかと思います。

X11からwaylandへじんわり移行する

リブートがないだけで、waylandとX11の切り替えがずいぶん気楽になったのではないかと思います。スクリプトの中身はたいしたものではないのですが、とても便利なので紹介してみました。

私のようにX11に未練たらたらで、waylandにスパッと移行できない軟弱なユーザーも、このコマンドさえあればもう安心ですね! WaylandとX11を行ったり来たりしながら、カタツムリのようにじんわりとwaylandに移行していきましょう。

追記(2024/5/21)labwcに対応

次期wayland環境としてラズパイでテストが始まったlabwcへの切り替えを追加しました。labwcをaptでインストールした状態で、bash raspi-disp-switcher labwcとすればlabwcに一発切り替えできます。

コメント

タイトルとURLをコピーしました