Kiosk stops the taskbar instead of auto-hiding it
wf-panel-pi won't auto-hide while it has notifications up, and at boot it always does (Wi-Fi connected, updates available), so it stayed on screen. kiosk.sh now stops the panel and its respawner as they start; the auto-hide edit is undone on existing installs.
This commit is contained in:
1 parent
1c2daad370
commit
f0bccb2a5e
3 files changed
+16
-11
No files matched your search
@@ -29,8 +29,8 @@ The installer:
|
||||
3. Copies the dashboard to `~/kids-dashboard/`. Writes `config.js` (location) and `screen.conf` (night schedule).
|
||||
4. Adds the kiosk to `~/.config/labwc/autostart`. If Chromium crashes, `lwrespawn` restarts it.
|
||||
5. Sets up the night-off cron jobs and the `tap-wake` systemd user service.
|
||||
6. Makes the desktop plain black with no icons and auto-hides the taskbar, since it shows for ~30s at boot
|
||||
before Chromium starts. `--uninstall` puts the original desktop settings back.
|
||||
6. Makes the desktop plain black with no icons, since it shows for ~30s at boot before Chromium starts,
|
||||
and the kiosk stops the taskbar. `--uninstall` puts the original desktop back (after a reboot).
|
||||
|
||||
It's safe to re-run, and settings you don't pass are kept from the last run.
|
||||
|
||||
|
||||
@@ -9,6 +9,11 @@ PREF="$PROFILE/Default/Preferences"
|
||||
# from a reboot at whatever level it was saved at (maybe the dim night level), and
|
||||
# tap-to-wake only acts on a screen that's off
|
||||
( sleep 5; "$DIR/screen.sh" auto ) &
|
||||
# no taskbar on a kiosk: it shows through at boot until Chromium covers the screen, and it
|
||||
# won't auto-hide while it has notifications up. Stop it (and its respawner) as it appears.
|
||||
( for _ in $(seq 20); do
|
||||
pkill -f 'lwrespawn /usr/bin/wf-panel-pi' 2>/dev/null; pkill -x wf-panel-pi 2>/dev/null; sleep 2
|
||||
done ) &
|
||||
exec chromium --kiosk --user-data-dir="$PROFILE" \
|
||||
--ozone-platform=wayland --noerrdialogs --disable-infobars --no-first-run \
|
||||
--hide-crash-restore-bubble --password-store=basic --disable-pinch \
|
||||
|
||||
+9
-9
@@ -59,16 +59,15 @@ remove_cron() { (crontab -l 2>/dev/null || true) | { grep -vE 'kids-dashboard/(s
|
||||
restart_kiosk() { pkill -f -- "--user-data-dir=$PROFILE" 2>/dev/null || true; } # lwrespawn relaunches it
|
||||
|
||||
# The desktop shows for ~30s at boot before Chromium covers it: make it plain black with no
|
||||
# icons, and auto-hide the taskbar. Originals are kept as *.kids-dashboard-orig for --uninstall.
|
||||
# icons (kiosk.sh stops the taskbar). Originals are kept as *.kids-dashboard-orig for --uninstall.
|
||||
PCMANFM_DIR="$HOME/.config/pcmanfm/default"
|
||||
PANEL_INI="$HOME/.config/wf-panel-pi/wf-panel-pi.ini"
|
||||
ORIG=.kids-dashboard-orig
|
||||
set_key() { # set_key FILE KEY VALUE (single-section ini files)
|
||||
if grep -q "^$2=" "$1"; then sed -i "s|^$2=.*|$2=$3|" "$1"; else echo "$2=$3" >> "$1"; fi
|
||||
}
|
||||
restart_desktop() { pkill -x pcmanfm 2>/dev/null || true; pkill -x wf-panel-pi 2>/dev/null || true; } # lwrespawn relaunches them
|
||||
restart_desktop() { pkill -x pcmanfm 2>/dev/null || true; } # lwrespawn relaunches it
|
||||
black_desktop() {
|
||||
mkdir -p "$PCMANFM_DIR" "$(dirname "$PANEL_INI")"
|
||||
mkdir -p "$PCMANFM_DIR"
|
||||
local out f
|
||||
# pcmanfm keeps one file per screen (desktop-items-<output>.conf); make sure every screen has one
|
||||
for out in $(XDG_RUNTIME_DIR=/run/user/$(id -u) WAYLAND_DISPLAY=wayland-0 wlr-randr 2>/dev/null | awk '/^[^ ]/{print $1}'); do
|
||||
@@ -82,13 +81,12 @@ black_desktop() {
|
||||
for k in desktop_bg desktop_fg desktop_shadow; do set_key "$f" "$k" '#000000'; done
|
||||
for k in show_trash show_mounts show_documents; do set_key "$f" "$k" 0; done
|
||||
done
|
||||
[ -f "$PANEL_INI" ] || cp /etc/xdg/wf-panel-pi/wf-panel-pi.ini "$PANEL_INI" 2>/dev/null || echo '[panel]' > "$PANEL_INI"
|
||||
[ -f "$PANEL_INI$ORIG" ] || cp "$PANEL_INI" "$PANEL_INI$ORIG"
|
||||
set_key "$PANEL_INI" autohide true
|
||||
}
|
||||
restore_desktop() {
|
||||
local f
|
||||
for f in "$PCMANFM_DIR"/*"$ORIG" "$PANEL_INI$ORIG"; do [ -f "$f" ] && mv "$f" "${f%"$ORIG"}"; done
|
||||
for f in "$PCMANFM_DIR"/*"$ORIG" "$HOME/.config/wf-panel-pi/wf-panel-pi.ini$ORIG"; do # (older installs edited the panel too)
|
||||
[ -f "$f" ] && mv "$f" "${f%"$ORIG"}"
|
||||
done
|
||||
restart_desktop
|
||||
}
|
||||
|
||||
@@ -229,8 +227,10 @@ EOF
|
||||
fi
|
||||
|
||||
# ---- black desktop behind the kiosk ---------------------------------------------------------
|
||||
say "Desktop: plain black, taskbar auto-hidden (shows only while booting)"
|
||||
say "Desktop: plain black with no icons or taskbar (it only shows while booting)"
|
||||
black_desktop
|
||||
f="$HOME/.config/wf-panel-pi/wf-panel-pi.ini" # undo the auto-hide an earlier version set
|
||||
[ -f "$f$ORIG" ] && mv "$f$ORIG" "$f"
|
||||
pgrep -u "$USER" -x labwc >/dev/null && restart_desktop
|
||||
|
||||
# ---- night-off schedule + tap to wake -----------------------------------------------------
|
||||
|
||||
Reference in new issue
Block a user