Little Waders took the Plasma build and reported what a container cannot. A disc player on a machine with no optical drive, a clock nobody at the back of the room could read, a browser at half the size of the panel around it, and Parent Call with no broker to call. The broker is the same for every classroom, so it is a default now and not something to fill in room by room. classroom-migrate brings an existing room to the same place without touching its name, its username or its password, and Parent Call distinguishes a broker it cannot reach from one that was never set up: those send somebody to look at completely different things. The disc player's detection was right and ran too late — alongside the session rather than before it, and the panel is built from the layout the moment a session starts. It runs before the display manager now, and again from udev when a drive is plugged in. UI_SCALE had a ceiling of 1.5, which cannot express a 4K television; a clock pinned at 15 points, which is the same size at every scale; and a browser that was never told the number at all. All three are fixed and the room doubles together at 200%. This also brings 0.1.47's work into the repository, where it had only ever existed in a build directory under /tmp: the hidden display dialog, its authenticated writer, the polkit action, and the church's own wallpaper. One piece of it is deliberately left out. The custom volume display needed a shell package of our own, and with one selected plasmashell builds no panel at all — measured twice, with that build's own files, on a classroom that deletes its panel configuration at every login by design. The lab connected to the real church broker the moment the package defaulted to it. Nothing was left behind, which was checked, but the guard that should have stopped it had never worked: it used iptables, which the lab image does not have, and probed with /dev/tcp under dash, where that always fails. Both reported success. Co-Authored-By: Claude Opus 5 <[email protected]>
3.3 KiB
Classroom display size (Plasma v2)
Each room keeps its own UI_SCALE in /etc/ekklesia-classroom/device.conf.
Package upgrades preserve the value. Plasma applies it at every classroom login.
Native display resolution is unchanged.
Administrator setting
On the classroom keyboard press Meta+Ctrl+Alt+Shift+D to open Display size. It is hidden from application lists and the teacher's panel. Saving requires administrator authentication through polkit; the keyboard shortcut grants no privilege. Choose a percentage and press Save and apply. Canceling the password prompt leaves the saved setting unchanged.
Start at 200% for a 4K TV, which gives 1920×1080 logical space while retaining 3840×2160 output. The offered values are 100, 125, 150, 175, 200, 225, 250 and 300%. The choice applies to all connected, enabled displays on that classroom computer.
For SSH administration, the fixed-purpose helper can also be run as root:
sudo /usr/local/bin/classroom-set-scale 2
It writes only UI_SCALE, preserving room configuration, broker credentials and
file ownership and permissions. The new size takes effect at the next classroom
login, or by running classroom-scale inside the classroom's graphical session.
The hidden window saves and applies in one operation.
Implementation and validation limits
classroom-scale uses kscreen-doctor; the login autostart runs only in KDE and
the script applies only to the classroom account. Values read from older/manual
configurations remain clamped to 0.8–3.0; invalid/nonfinite values become 1.0.
The helper accepts only the window's predefined choices, takes no paths, and
writes the root-owned settings file atomically. Polkit requires auth_admin for
every save, with no retained authorization.
Hardware checks required: shortcut registration, administrator authentication, 200% at 4K, logout/reboot persistence, and Chrome/Parent Call/DVD sizing. XWayland applications may be softer than native Wayland applications when scaled.
Wallpaper in the v2 package
The approved background source is config/wallpapers/classroom-calm.png. The
package installs it at /usr/share/backgrounds/ekklesia/classroom-calm.png, the
path used by the packaged Plasma layout. The layout is rebuilt at login, so
upgraded classrooms receive the package wallpaper without per-room copying.
What the one number reaches
classroom-ui-scale prints it, clamped, and everything that cannot read
the display scale for itself asks that command rather than the file:
- Plasma — the panel, the clock, notifications, the volume display and
every dialog, because
classroom-scalesets it as the display's scale throughkscreen-doctorat every login. - Chrome and Wonder Ink —
--force-device-scale-factor, because Chrome on Wayland was measured not to follow the compositor's output scale on its own. It is the same number, not a second scaling: Chrome replaces its detected scale with it. - The disc player's own surfaces — they are measured in the logical pixels the compositor is already scaling, so they follow without being told.
The clock is the one thing that used to be left behind. It was pinned at 15 points, which is the same 15 points at every scale, and on a 4K television it was a clock nobody at the back of the room could read. It is sized by the bar now.