The whole appliance UI is now configuration for a desktop Debian already ships: a Plasma 6.3 session with a colour scheme, a look and feel package that builds the bar, window rules, and KDE's own Kiosk restrictions. Two things were measured rather than assumed, and both changed a decision. Plasma restarts a crashed panel three times a minute and then gives up, which is the failure a classroom has already had. Four lines of systemd drop-in make it unconditional; the panel then survived eight SIGKILLs a second apart, back each time in 2.4s. Plasma draws a minimised task and a background task identically, so the five states the room needs cannot all be shown. Rather than write a task manager, the classroom removes minimise: clicking a launcher always means show me this. Co-Authored-By: Claude Opus 5 <[email protected]>
34 lines
1.3 KiB
Bash
Executable File
34 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
# The room's ordinary browser: YouTube, and anywhere else a lesson goes.
|
|
#
|
|
# It is a full browser with a tab strip and an address bar, in the room's
|
|
# own profile, so the church YouTube sign-in survives reboots and updates.
|
|
# Wonder Ink is a separate application in a separate profile and is not
|
|
# reachable from this one.
|
|
#
|
|
# There is no launch/focus/minimise/restore logic here any more. The panel
|
|
# owns that: it knows this window by StartupWMClass and does the right
|
|
# thing with a click, including telling the teacher which of those four
|
|
# states the application is in.
|
|
#
|
|
# --hide-crash-restore-bubble is what suppresses "Restore pages? Chrome
|
|
# didn't shut down correctly" after a power cut. Note the switch name: the
|
|
# older --disable-session-crashed-bubble is not present in Chrome 152 at
|
|
# all, so it would have silently done nothing.
|
|
|
|
# Not Wonder Ink. Wonder Ink is its own application in its own profile,
|
|
# and a second way in through this window would put a teacher's lesson
|
|
# session in the room's shared browser profile — the exact leak the split
|
|
# exists to prevent.
|
|
HOME_PAGE='https://www.youtube.com/'
|
|
|
|
exec google-chrome \
|
|
--ozone-platform=wayland \
|
|
--no-first-run \
|
|
--no-default-browser-check \
|
|
--password-store=basic \
|
|
--hide-crash-restore-bubble \
|
|
"${@:-$HOME_PAGE}"
|