Amazonのアソシエイトとして、ラズパイダ(raspida.com)は適格販売により収入を得ています。詳しくは当サイトの プライバシーポリシーをご覧ください。

キオスク端末は本来、公共の場に置いて誰でも触れられるPC端末のことを指します。Web閲覧だけできるものや、特定のサービス絞った専用のメニューの場合があります。コンビニエンスストアの端末も広義な意味でキオスク端末です。

家庭内や職場内など誰でも自由に触れるマシンなら、これもまたキオスク端末といえ、個人向けにカスタマイズしていないデスクトップ環境で利用します。

Raspberry Pi はその小さい筐体と設定が容易のためキオスク端末にも最適です。昔のビジネスホテルなどでデスクトップパソコンが並んでいたのを思い出します。

簡易的なキオスク端末なら難しくはありません。

Webブラウザがフル画面で立ち上げてあり、いつでも検索できたり、決まったWebサイトを表示させておく使い方です。

wayfire.iniをイジるだけの試作です。

waylandの設定ファイル「wayfire.ini」に記述するだけ

キオスク端末化で一番簡単なのは、Raspberry Pi OSをそのまま使う方法です。

起動したらデスクトップ画面ではなく、Webブラウザを全画面表示すればさながらネット専用端末です。

iniファイルに数行を追加するだけで実現できます。

Pi 5と最新のRaspberry Pi OSは、画面描画コンポジットにこれまでのX11ではなくwaylandが採用されています。Waylandの設定ファイル(wayfire.ini)に設定を追記していくことで機能を追加できます。

今回の環境

今回はRaspberry Pi OSの日本語入力まで完了している状態です。通常のRaspberry Pi OS (bookworm) 64bitをインストールしました。

SSDドライブ起動で用意しましたが、microSDカードでも同じです。

  • Raspberry Pi OS (bookworm)64bit
  • 日本語入力はfcitx5+mozc

日本語入力と表示

デフォルトのWebブラウザ

最初に、Webブラウザの既定にChromiumを選択しておきます。Firefoxとデフォルトを選べる仕様になっているためです。

sudo raspi-config nonint do_browser chromium-browser

上記のコマンドなら一発です。

GUIでRaspberry Piの設定ダイアログからでも、raspi-configのメニューからでも同じように設定できます。

Wayfire.iniへ追記する内容

早速、iniファイルの追記をしていきます。

wayfire.iniファイルの場所はホームの隠しフォルダ(.config)内にあります。念のためバックアップしてから編集していきましょう。

nano cp ~/.config/wayfire.ini ~/.config/wayfire.ini.bk
nano ~/.config/wayfire.ini

Pi 5とRaspberry Pi OS(bookworm)なら、デフォルトでこんな感じで記載されています。

デフォルトのwayfire.ini

[command]
repeatable_binding_volume_up = KEY_VOLUMEUP
command_volume_up = wfpanelctl volumepulse volu
repeatable_binding_volume_down = KEY_VOLUMEDOWN
command_volume_down = wfpanelctl volumepulse vold
binding_mute = KEY_MUTE
command_mute = wfpanelctl volumepulse mute
binding_menu = <super>
command_menu = wfpanelctl smenu menu
binding_terminal = <ctrl> <alt> KEY_T
command_terminal = lxterminal
binding_bluetooth = <ctrl> <alt> KEY_B
command_bluetooth = wfpanelctl bluetooth menu
binding_netman = <ctrl> <alt> KEY_W
command_netman = wfpanelctl netman menu
binding_grim = KEY_SYSRQ
command_grim = grim
binding_orca = <ctrl> <alt> KEY_SPACE
command_orca = gui-pkinst orca reboot
binding_quit = <ctrl> <alt> KEY_DELETE
command_quit = lxde-pi-shutdown-helper
binding_power = KEY_POWER
command_power = pwrkey

[input-device:10-0038 generic ft5x06 (79)]
output = DSI-1

[input-device:6-0038 generic ft5x06 (79)]
output = DSI-1

[input-device:4-0038 generic ft5x06 (79)]
output = DSI-2

[input-device:10-0038 generic ft5x06 (00)]
output = DSI-1

[input-device:6-0038 generic ft5x06 (00)]
output = DSI-1

[input-device:4-0038 generic ft5x06 (00)]
output = DSI-2

[input-device:10-005d Goodix Capacitive TouchScreen]
output = DSI-1

[input-device:6-005d Goodix Capacitive TouchScreen]
output = DSI-1

[input-device:4-005d Goodix Capacitive TouchScreen]
output = DSI-2

[input]
xkb_model = pc109
xkb_layout = jp
xkb_variant =

Coreセクション

はじめに追記するのはCoreセクションです。

デフォルトでは存在していませんから、最上部にcoreセクションを3行追記します。プラグインとしてautostartを追記します。

これでautostartセクションを有効にします。元からあるcommandとinputも記載し、最後にautostart。

[core]
plugins = \
  command \
  input \
  autostart

autostartセクション

最下段にautostartセクションを追加します。

これもデフォルトでは存在していませんから新たに追記します。

[autostart]
chromium = chromium-browser https://raspida.com forum.raspida.com(閉鎖) --kiosk --noerrdialogs --disable-infobars --no-first-run --enable-features=OverlayScrollbar --start-maximized --ozone-platform=wayland

Chromiumで指定したオプションの意味は次の通りです。

最初のオプションで、URLを2つ指定しています。当サイトとフォーラムのサイトです。

chromium = chromium-browser https://raspida.com forum.raspida.com(閉鎖)

今回に設定したオプション:

–kioskキオスクモード
–noerrdialogsエラーメッセージダイアログの抑制
–disable-infobars情報バーの非表示
–no-first-run初回セットアップウィザードを無効
–enable-features=OverlayScrollbar必要な時にスクロールバーを表示する
–start-maximized最大化。いわゆる全画面表示
–ozone-platform=waylandChromiumのOzoneバックエンドに対しwaylandなので指定。

ozoneは難しくてよく分かりませんね。https://chromium.googlesource.com/chromium/src/+/HEAD/docs/ozone_overview.md

この他にもオプションはたくさんあります。URLはChromium側です。これ以上は別に調べてください。

スクリーンセーバーの抑止と省電力OFF

途中で画面を消したくないなら、スクリーンセーバーの抑止と省電力機能をオフにします。例だとこうなります。

[autostart]
screensaver = false
dpms = false
chromium = chromium-browser https://raspida.com forum.raspida.com(閉鎖) --kiosk --noerrdialogs --disable-infobars --no-first-run --enable-features=OverlayScrollbar --start-maximized --ozone-platform=wayland

このようにChromiumの設定だけで、起動後にフルスクリーンのChromiumが使えます。

オプションのかんたんな解説

autostartセクションにあるオプションを少し解説してみます。

解説~autostartセクション

[autostart]
#autostart_wf_shell = false

panel = wfrespawn wf-panel-pi
background = wfrespawn pcmanfm --desktop --profile LXDE-pi
xdg-autostart = lxsession-xdg-autostart

最初のwf_shellは重要です。

autostart_wf_shell = false

wayfireのシェルをオフにしてしまうと、デスクトップは真っ黒でカーソルだけが表示されます。仮にウィンドウがあっても表示の大きさも変えられません。

panel〜とbackgroud〜行は、autostart_wf_shell = falseとした場合、個別に機能させられます。

panel = wfrespawn wf-panel-pi

panel〜はスタートボタンや通知領域を含む上部バーを指しています。バーが表示されないだけではなく、どうやらキーボードの切り替えもできなくなっていました。(?)

background = wfrespawn pcmanfm --desktop --profile LXDE-pi

これはデスクトップ画面全体にある背景、つまり壁紙とデスクトップアイコンなどを表示させる状態です。

xdg-autostart = lxsession-xdg-autostart

raspi-configでオートスタートは設定できるため、ここでは敢えて要らないかもしれません。

screensaver = false

そのままです。スクリーンセーバーをオフにしています。

dpms = false

dpmsは、Display Power Management Signalingの略で、一定の操作がないときディスプレイを消す省電力設定です。

もしも通常のデスクトップ画面のままで良ければ、wf_shellは以下4行はそもそも記述しません。

[autostart]
#autostart_wf_shell = false

panel = wfrespawn wf-panel-pi
background = wfrespawn pcmanfm --desktop --profile LXDE-pi
xdg-autostart = lxsession-xdg-autostart

■Pi 5は8GBモデルがオススメ

全画面は解除できてしまう

Chromiumは全画面で表示されても、このままだとAlt +F4 キーでWebブラウザは閉じることができます。

最後に記したpannelやbackgroundなどを無効にすると、wf_shell = falseにしている関係で何も操作ができなくなります。

その時、もう一度Webブラウザを立ち上げられるよう予めデスクトップにWebブラウザのショートカットを用意して回避させることにしました。

autostartの設定をする前に、デスクトップへChromiumのショートカットを作成しておきました。メインメニューにあるChromium項目を右クリックすればショートカットの作成ができます。

タブ表示は見えない

Chromiumのコマンド例では2つのURLを指定しています。

2つ以上URLを指定するとタブ表示になるのですが、画面では見えずマウスでは操作ができません。

タブを切り替えるのは、変更していないデフォルトであれば、キーボードショートカットであるCtrl + Tabでできます。覚えておきましょう。

簡易的なキオスク端末

今回はWebブラウジングするだけの端末としただけです。自宅にある何らかのサーバのWEBUI画面(例えばmoodeaudio、カメラ画像等)の表示をしておくのも便利です。

インターネットというより、自宅ネットワーク内の表示に良いかもしれません。

アプリでも自作でも、ダッシュボード的なものを複数表示しておいても良いでしょう。

最後にキオスク端末で使うモニターですが、モバイルモニターがちょうど良く感じます。なによりも通常のモニターより消費電力が少ないのが利点です。

こんな感じで全てがこじんまりと収まるのも助かります。

はてな? はてな?
調べている中で懸念があるのは、今後のRaspberry Pi OSにwayfire自体が省かれていくような流れがあるようです。コロコロと変わるのが困る点ですね。