fix: harden classroom presentations

This commit is contained in:
ekklesia
2026-09-23 00:02:25 -05:00
parent ec1e0d1cd7
commit 6f2d169355
16 changed files with 709 additions and 215 deletions
@@ -87,26 +87,9 @@ if (PARENT_CALL) {
parentCall.writeConfig("maxSectionCount", 1);
}
// HELP, beside Parent Call and not in the row with the applications.
//
// Every room gets it: the manual is the one thing that is never optional,
// because a teacher who needs it is by definition a teacher who does not
// know where to look. It shows only the pages for the features THIS
// device has — see classroom-manual — so the button means the same thing
// in every room while what it opens does not.
//
// On the left, with Parent Call, for the same reason Parent Call is
// there: it is not one of the room's applications, and putting it in the
// middle row would move buttons teachers reach for without looking.
var help = panel.addWidget("org.kde.plasma.quicklaunch");
help.currentConfigGroup = ["General"];
help.writeConfig(
"launcherUrls",
"file:///usr/share/applications/ekklesia-manual.desktop"
);
help.writeConfig("showLauncherNames", false);
help.writeConfig("enablePopup", false);
help.writeConfig("maxSectionCount", 1);
// Help is intentionally absent from this release's teacher-facing panel.
// Its launcher, source pages and build pipeline remain installed for the
// documentation correction pass; only the unfinished entry point is hidden.
var leftGap = panel.addWidget("org.kde.plasma.panelspacer");
leftGap.currentConfigGroup = ["General"];
+7 -8
View File
@@ -82,15 +82,14 @@ NoiseStrength=2
[org.kde.kdecoration2][$i]
library=org.kde.breeze
theme=Breeze
# A pin and a close button, and nothing else.
#
# The pin is the Live View story: keeping a window above the others is a
# window-manager state, not a feature the classroom has to invent. There is
# deliberately no minimise button, because a minimised window is the one
# thing a teacher cannot see the state of — measured, not assumed. Double
# clicking the title bar still maximises, so nothing is unreachable.
# A close button, and nothing else. `F` was the keep-above button, rendered
# by Breeze as an unexplained double chevron beside Close. Classroom windows
# that must stay above others request that state themselves; teachers do not
# need a title-bar toggle for it. There is deliberately no minimise button,
# because a minimised window is the one thing a teacher cannot see the state
# of. Double clicking the title bar still maximises ordinary windows.
ButtonsOnLeft=
ButtonsOnRight=FX
ButtonsOnRight=X
ShowToolTips=false
BorderSize=None
BorderSizeAuto=false
+20 -3
View File
@@ -1,6 +1,6 @@
# Window rules.
#
# There are two: one about video, one about the Parent Call card.
# There are three: video, the Parent Call card, and the presentation surface.
#
# Everything else the classroom used to arrange by hand is ordinary window
# manager behaviour and needs no rule: a dialog stays in front of the window
@@ -17,8 +17,8 @@
# 314-line window arbiter was doing.
[General]
count=2
rules=classroom-video,classroom-parent-call
count=3
rules=classroom-video,classroom-parent-call,classroom-presentation
[classroom-video]
Description=Video is an appliance screen, not a window
@@ -48,3 +48,20 @@ skippagerrule=2
# button, rather than behind it.
above=true
aboverule=2
[classroom-presentation]
Description=A presentation is the whole display, not a large window
# The library and Quick Look have the same Wayland app id, so the stable
# presenter title is part of this match. Matching the app alone would make
# every Presentations window fullscreen.
wmclass=ekklesia-presentations
wmclassmatch=1
wmclasscomplete=false
title=Presenting
titlematch=1
fullscreen=true
fullscreenrule=2
noborder=true
noborderrule=2
skiptaskbar=true
skiptaskbarrule=2