ラズパイbookworm – chromiumの上に出現する謎のバーを消す方法

昨日また新たなラズパイのアップデートが降って来てX11がアップデートされました。それより前のアップデートではカーネルも6.1.58から6.1.63にアップデートされました。私のRPI 4Bの環境をbookwormへアップグレードして以来、私の環境ではX11が固まってしまうことがあり(たぶんこれがらみ)、その度にまだ生きているキーボードを使ってバーチャルコンソールからログインしてリブートコマンドを叩き込む(この間、画面はフリーズしたまま)という大技を繰り出してしのいでいたのですが、カーネルアップデートあたりからこのような曲芸をする機会が減ってきた気がします。

新OSリリース直後のラズパイはいろいろ不安定で、実地テストを繰り返しながら少しづつ足腰を鍛えていくイメージなのですが、bookwormはそろそろ安定してきたと言ってもいい時期なのかもしれません。このX11のアップデートで画面のフリーズ問題が全快してくれるのかなぁと期待をかけているのですが、どうなりますか?

この間chromiumは118から119にアップデートされました。wayland環境で利用する場合、日本語の入力が出来ないことが依然として一番大きな問題ですが、今回はそれとは別の問題、chromiumのウインドウの上に出現する謎のバーを解決する方法を考えます。

Waylandでラズパイを利用すると、chromiumのウィンドウの上に謎のバーが出現する

何が問題なのかは見ていただいたほうが分かりやすいかと思います。

Waylandで利用中のラズパイで、chromiumのウインドウの上に不必要なタイトルバーが出現する。設定でシステムタイトルバーをオフにしているにも関わらず、タイトルバーが不自然な形で表示される。
Waylandで利用中のラズパイで、chromiumのウインドウの上に不必要なタイトルバーが出現する。設定でシステムタイトルバーをオフにしているにも関わらず、タイトルバーが不自然な形で表示される。

微妙にずれて不自然さが強調されていて、とても目立ちます。バーが出現するというよりは、消えるべきタイトルバーが表示されてしまっているというのが正しいかもしれません。ブラウザの機能的には問題はないのですが、やっぱりなんとかならないものかと考えてしまいます。

このタイトルバーが出現する条件を以下にまとめます。例えばX11環境では出現しませんし、ご自身の環境で見たことがないという場合、このバーを気にする必要はありません。

  • ラズパイbookwormをwayland環境で利用していること。
  • chromiumをwaylandモードで利用していること。chrome://flagsのozone-platform-hintや起動オプションの--ozone-platformでX11を指定している場合は出現しない。

以上の条件を満たすchromiumでは、次の2通りのパターンでバーが出現します。

  • chromiumの設定で「デザイン」>「システムタイトルバーと枠線の使用」をオフにすると出現。
  • Progressive Web Application(PWA)としてインストールしたアプリを起動すると出現。

上のスクリーンショットはシステムタイトルバーをオフにした場合の出現例で、下のスクリーンショットがPWAの場合です。

ラズパイにインストールしたウェブアプリ(PWA)のデスクトップアイコンをクリックして起動。chromiumの不具合で不必要なタイトルバーが出現してしまった。

PWAとは何かについては、前回のブログでまとめました。

wayfire.iniでpixdecorを設定して、謎のバーを回避する

問題が起こる原因は、chromiumのwayland対応が十分でないことにあるようです。解決方法としてはwayfire(waylandのコンポジタ)の設定を、chromiumのタイトルバーが出ない方向に強引に変更します。

chromiumのデザインで「システムタイトルバーと枠線の使用」をオフにしない場合

chromiumのデフォルト設定がこの状態です。この場合wayfireの設定を次のように変更します。PWAを起動した場合だけchromiumのタイトルバーが非表示になります。

~/.config/wayfire.iniを以下の設定を追加

[pixdecor]
ignore_views = app_id contains "chrome-"

chromiumのデザインで「システムタイトルバーと枠線の使用」をオフにする場合

この場合、chromiumのすべてのウインドウのタイトルバーとPWAのウインドウのタイトルバーを非表示にする必要があります。以下のように設定しましょう。

~/.config/wayfire.iniを以下の設定を追加

[pixdecor]
ignore_views = (app_id is "chromium-browser") | (app_id contains "chrome-")

設定をして、謎のバーが表示されなくなったSoqAlbumです。邪魔者がいなくなって晴れやかな感じですね(笑)

wayfireの設定を変更して、正常に表示されるようになったPWAアプリ。謎のバーが表示されなくなりました。ちなみに表示されているのは、本サイトで開発中のファイル転送サービスアプリのSoqAlbum。
wayfireの設定を変更して、正常に表示されるようになったPWAアプリ。謎のバーが表示されなくなりました。ちなみに表示されているのは、本サイトで開発中のファイル転送サービスアプリのSoqAlbum。詳細はここここ

ちなみに設定の中でapp_idを使っていますが、調べ方がよく分からなかったので、わりと適当にこんな値らしいというidを使いました。正確に調べればもっとまともなidが見つかるのかもしれません。

waylandへの移行にまた一歩近づく

以前にも言いましたが、私は未だにラズパイbookwormをX11環境で利用しています。waylandへ移行できない理由の一つが、chromiumの不十分なwayland対応なのですが、そのchromiumの問題の半分が今回の設定で解決できたかなと思っています。

chromiumで日本語が入力できない件で新情報を発見

もう一つの問題がchromiumで日本語が入力できない問題で、これについては以前のブログでまとめました。

そのページの最後あたりで--gtk-version=4というオプションで日本語入力を回避できる可能性があるのだという話に触れたのですが、それに関して大きな進展がありました

Bookworm (Raspberry Pi OS)のChromiumで日本語入力できない現象について - Qiita
概略 :環境と解決案(2023/12/10 更新)Rapsberry Pi OSの更新のおかげで、apt update+apt upgradeすると、OSデフォルトのChromiumでchrom…

ラズパイで利用できるchromiumには2種類あって、一つはラズパイ財団がGPU周りをチューンした”chromium-browser”で、もう一つが本家debianでコンパイルされた”chromium”です。どうやら本家debianのchromiumはgtk4のオプションに対応してくれている様子で、debian chromiumをインストール、ozone-platformをwaylandにして--gtk-version=4で起動すると日本語が入力できました。

問題としては、RaspberryPi OSが32bit版の場合、debian chromiumはバージョンが古いこと(111位?)と、(これは俺環かもしれないですが)debian chromiumは表示が不安定(表示がちらつくことがあった)ことです。どうも最近のラズパイのカーネルやGPU周りの修正にdebian chromiumが対応していない印象で、本家debianの環境では起こらないちらつきがRaspberryPi OS上で起こっているのではないかという感じがしました(もう一度言いますが、私の環境特有の問題かもしれません)。

Xwayland経由でchromiumを使うとファイルドラッグが出来ないのが嫌なので、wayland直通でchromiumがなんとかまともに動いてくれと切に願っているのですが… 興味がある方はdebian版chromiumをインストールして、いろいろチューンしてみるとよいかもしれません。

コメント

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