かなり前に導入したが、 Chromium の自動起動は設定しなかったため設定する事にする
今回は、下記の設定を合わせてした。
- 自動で Chromium を起動する
- 15分に一回画面をリロードする
- マウスカーソルを消す
自動で Chromium を起動する ¶
autostart
とやらで昔はできたらしいが今はできないため systemd で起動する
--noerrdialogs
: エラーダイアログをすべて抑制します。--disable-background-mode
: バックグラウンド機能を止める--start-maximized
: 起動時に最大化した状態で起動する--app=
: app モードにする--kiosk
: これを設定すると CPU使用率などが確認できなくなったため外したRuntimeMaxSec=
で指定秒数でプロセスが再起動されるので実現できる今回は15分とした
/etc/systemd/system/chromium-autorun.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| [Unit]
Description=Chromium Autorun
[Service]
Type=simple
Environment=DISPLAY=:0.0
Environment=XAUTHORITY= ~/.Xauthority
ExecStartPre=rm -rf ~/.config/chromiumu/Singleton*
ExecStart=/usr/bin/chromium-browser \
--noerrdialogs \
--disable-background-mode \
--start-maximized \
--app=https://google.co.jp/
Restart=always
RuntimeMaxSec=900
User=pi
Group=pi
[Install]
WantedBy=[email protected]
|
daemon を再読み込みして自動起動登録をする
1
2
3
4
| systemctl daemon-reload
systemctl start chromium-autorun.service
systemctl enable chromium-autorun.service
systemctl is-enabled chromium-autorun.service
|
マウスカーソルを消す ¶
unclutter
を利用する
1
| sudo apt install unclutter
|
マウスの動きが2秒間アイドル状態になったらカーソル表示を消す
/etc/systemd/system/unclutter.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| [Unit]
Description=unclutter daemon to hide mouse pointer
Requires=lightdm.service
After=lightdm.service
[Service]
Environment=DISPLAY=:0.0
Environment=XAUTHORITY=~/.Xauthority
Type=simple
ExecStart=/usr/bin/unclutter -idle 2 -jitter 3
Restart=always
User=pi
Group=pi
[Install]
WantedBy=mystuff.target
|
daemon を再読み込みして自動起動登録をする
1
2
3
4
| systemctl daemon-reload
systemctl start unclutter.service
systemctl enable unclutter.service
systemctl is-enabled unclutter.service
|
2021/06/16 変更 ¶
リロードのタイミングで画面がちらつくのが気になるので変更
/etc/systemd/system/chromium-autorun.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| [Unit]
Description=Chromium Autorun
[Service]
Type=simple
Environment=DISPLAY=:0.0
Environment=XAUTHORITY=~/.Xauthority
ExecStartPre=rm -rf ~/.config/chromiumu/Singleton*
ExecStart=/usr/bin/chromium-browser \
--noerrdialogs \
--disable-background-mode \
--start-maximized \
--app=https://google.co.jp/
Restart=always
#RuntimeMaxSec=86400
User=pi
Group=pi
[Install]
WantedBy=[email protected]
|
service ファイルを変更したので一度 dsaible して再度登録する
1
2
3
4
5
6
7
| systemctl daemon-reload
systemctl stop chromium-autorun.service
systemctl disable chromium-autorun.service
systemctl start chromium-autorun.service
systemctl enable chromium-autorun.service
systemctl is-enabled chromium-autorun.service
|
インストール ¶
1
2
3
4
| export DISPLAY=:0.0
WID=$(xdotool search --onlyvisible --class chromium|head -1)
xdotool windowactivate ${WID}
xdotool key ctrl+F5
|
1
| xdotool getactivewindow
|
1
| xdotool getactivewindow --onlyvisible --class chromium | xargs -L1 xdotool getwindowname
|
/etc/systemd/system/chromium-reload.sh
1
2
3
4
5
6
7
8
9
| #!/usr/bin/env bash
set -eu
ACTWIN=$(xdotool getactivewindow | xargs -L1 xdotool getwindowname)
if [[ "${ACTWIN}" == *$1* ]]; then
#echo 'FOUND!!!'
xdotool key ctrl+F5
fi
|
1
| chmod +x /etc/systemd/system/chromium-reload.sh
|
/etc/systemd/system/chromium-reload.service
1
2
3
4
5
6
7
8
9
10
11
12
13
| [Unit]
Description=Scheduled chromium reload
[Service]
Type=simple
Environment=DISPLAY=:0.0
Environment=XAUTHORITY=~/.Xauthority
ExecStart=/etc/systemd/system/chromium-reload.sh "zabbix"
User=pi
Group=pi
[Install]
WantedBy=[email protected]
|
1
2
3
4
5
6
| systemctl daemon-reload
systemctl stop chromium-reload.service
systemctl disabled chromium-reload.service
systemctl start chromium-reload.service
systemctl enable chromium-reload.service
|
/etc/systemd/system/chromium-reload.timer
1
2
3
4
5
6
7
8
9
| [Unit]
Description=Scheduled chromium reload
[Timer]
Unit=chromium-reload.service
OnUnitActiveSec=15min
[Install]
WantedBy=timers.target
|
1
2
3
4
5
6
| systemctl daemon-reload
systemctl stop chromium-reload.timer
systemctl disabled chromium-reload.timer
systemctl start chromium-reload.timer
systemctl enable chromium-reload.timer
|
timer が稼働するかはここで確認出来る
1
2
3
4
5
| root@raspberrypi:~# systemctl status chromium-reload.timer
● chromium-reload.timer - Scheduled chromium reload
Loaded: loaded (/etc/systemd/system/chromium-reload.timer; enabled; vendor preset: enabled)
Active: active (waiting) since Wed 2021-06-16 22:34:09 JST; 2min 19s ago
Trigger: Wed 2021-06-16 22:49:50 JST; 13min left
|