feat: give the classroom a desktop instead of a shell

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]>
This commit is contained in:
ekklesia
2026-09-10 08:35:12 -05:00
co-authored by Claude Opus 5
parent bfc7caf28f
commit 87b55761c6
51 changed files with 1352 additions and 36 deletions
@@ -0,0 +1,15 @@
[Desktop Entry]
Type=Application
Name=Wonder Ink
GenericName=Lesson
Comment=The Wonder Ink lesson for this room
Exec=/usr/local/bin/classroom-wonderink
Icon=ekklesia-wonderink
Terminal=false
Categories=Education;
StartupNotify=true
# How the panel knows that the window on screen belongs to this launcher.
# Chrome derives an app id from the --app URL, and this must match it
# exactly or the launcher and the window become two separate buttons.
StartupWMClass=chrome-app.wonderink.org__-Default
X-GNOME-SingleWindow=true