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

Raspberry Pi OSもbookwormになってからwayland・wayfireの環境がデフォルトになりました。以前のX11環境に戻すこともできますが、新しい環境に慣れていきたいですね。

指定のアプリケーションソフトを起動時に自動起動させたい場合、どうするのかちょっと分かりません。Windowsだとスタートアップにショートカットを入れるというやつです。

これまでのX11環境と同じように自動起動させることも一部可能ですが上手く行かないことも出てきます。今後は主流のwayland・wayfireで設定する方法をご紹介しておきます。

wayfire.iniへ記述する

以前までのRaspberry Pi OSだと、/home/pi/.config/lxsession/LXDE-pi/autostartに記述する方法がありました。他にもサービスで起動だったり、特殊な記述方法など5つくらいあったと思います。全て指定場所にある指定ファイルに追記する形でした。

最もシンプルにアプリを指定する方法はwayfire.iniに記載することです。

例えば、Chromiumブラウザを起動と同時に開いておきたい例にご紹介します。

ファイルは~/.config/wayfire.iniにあり、最下部または既存のautostartセクションに追記します。

[autostart]
chromium = chromium-browser

結構、簡単ですね。

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

記述フォーマット

autostartを[]で括っているのはセクションといいます。

その中にChromiumブラウザを指定しているだけですが、少し注意点があります。

[autostart]
ユニークなID = コマンド

例ではユニークなIDをchromiumにしました。ここで被っていなければ大丈夫なので、browserでもOKです。

起動させる文字列部分は、実はターミナルで実行できるコマンドです。

つまり、シェルに組み込まれているコマンド名か、ユーザーのホーム ディレクトリにあるファイル名であれば実行できます。

Chromiumブラウザは、ターミナルだとchromium-browserで実行できるので、そう指定しています。試しにターミナルで実行してみてください。

ファイルのプロパティを参考に

これが自作のシェルスクリプトなら、ホームディレクトリに置いていけば、ファイル名.shで実行は可能です。

逆にそれ以外のものは、絶対パスで指定する必要が出てきます。

簡単な代わりにいくつか決まり事がある

  1. 結局はシェルによって起動している(プロセスの制御はない)
  2. ユーザーはログインしている必要がある
  3. ユーザーがログインする度に起動する(GUI)コマンドラインからデスクトップを実行する(CUI)
  4. ユーザーがログインしないと起動しない
  5. 起動するプログラムやスクリプトファイル内で渡す・参照するファイルは絶対パス(フルパス)で指定する必要がある(例外としてホームディレクトリにあれば相対パスでいい)

wayfire.iniでシェルスクリプトの指定

ホームディレクトリにshファイルを置いた場合($HOMEはそのまま記述します)。

[autostart]
chromium = $HOME/start-browser.sh

ホームディレクトリ以外に置いた場合はフルパス。

[autostart]
chromium = /usr/bin/hogehoge.sh

以前の自動起動の設定方法より、wayfire.iniの記述の方が意外と簡単でした。

次は、おまけ。

キオスク端末みたいに自動実行させてみました。

shファイルでキオスク端末みたいにブラウザを表示する

Chromiumコマンドのオプションを指定します。最初のURLも指定してみました。

#!/bin/bash
chromium-browser --start-fullscreen --kiosk --incognito --app=https://raspida.com &

--incognitoはシークレットモードのこと。

実行権を与えておきます。

chmod +x start-browser.sh

ユーザーデータを分ける場合は--user-data-dir=を使う。

--user-data-dir=/home/$USER/.config/chromium_kiosk

最低限、--start-fullscreen --kioskを付けてあげると良いでしょう。

Rレッド Rレッド
但し、これだとAlt + F4でブラウザを終了はできてしまいます。まだ調べていません。誰か教えてください。

Alt + F4を避ける意味でも、終了したらまた起動する無限ループでもいいのかな。ウザイけど。

#!/bin bash
while true; do
    chromium-browser --start-fullscreen --kiosk --incognito --app=https://raspida.com &
done

コマンドでiniファイルを設定するというのはLinuxらしいです。wayfire環境だとこれまでと同様に設定できないこともまだある様子です。今後に更新されていくでしょう。

コマンドって面倒にも感じますが、慣れるとこれが楽なんですよね。

以上、Raspberry Pi OSでアプリの自動起動をさせる設定方法でした。

できればコマンドをラップする

調べると、wayfireではラッパースクリプトと言ってシェルスクリプトで指定したコマンドを実行した方が良い場合があるとありました。

理由は、Wayfireは以前のX11環境LXDEと同じプレフィックス変数をサポートしていないようです。 そのため、終了の検出と再起動を自分で処理する必要があるからです。