build: keep the DVD and MQTT helpers, and count the deletion honestly
Building the package showed what reading the tree did not: classroom-dvd still calls classroom-window, classroom-mqtt still calls classroom-notify, and the DVD overlay still imports the icon and stylesheet helpers the dock shared. They go back in, and the write-up now counts what was actually removed rather than what could be. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
6e4786f448
commit
4c3f19d599
@@ -16,7 +16,10 @@ provision = (root / "scripts/classroom-provision").read_text()
|
||||
units = "\n".join(path.read_text() for path in (root / "systemd").rglob("*.service"))
|
||||
canary = (root / "update_canary.sh").read_text()
|
||||
validation_script = (root / "tools/validate-trixie-release.sh").read_text()
|
||||
sway = (root / "config/sway/config").read_text()
|
||||
layout = (root / "config/plasma/lookandfeel/contents/layouts/org.kde.plasma.desktop-layout.js").read_text()
|
||||
rules = (root / "config/plasma/xdg/kwinrulesrc").read_text()
|
||||
restrictions = (root / "config/plasma/xdg/kdeglobals").read_text()
|
||||
supervision = (root / "systemd/user/plasma-plasmashell.service.d/ekklesia-classroom.conf").read_text()
|
||||
build = (root / "tools/build-release.sh").read_text()
|
||||
policy = json.loads(
|
||||
(root / "config/chrome/policies/managed/ekklesia-classroom.json").read_text()
|
||||
@@ -67,14 +70,41 @@ check("printer provisioning is bounded", "--kill-after=5s 30s" in provision)
|
||||
check("Chrome uses the system print dialog", policy.get("DisablePrintPreview") is True)
|
||||
|
||||
print()
|
||||
print("4. secondary Chrome windows")
|
||||
check("stateful Chrome helper starts with Sway", "/usr/local/bin/classroom-chrome-windows" in sway)
|
||||
check("Chrome helper is packaged", '"$ROOT/scripts/classroom-chrome-windows"' in build)
|
||||
check("Chrome role module is packaged", '"$ROOT/lib/classroom_chrome.py"' in build)
|
||||
check("no broad Chrome floating rule", not any(
|
||||
"google-chrome" in line and "floating enable" in line
|
||||
for line in sway.splitlines()
|
||||
))
|
||||
print("4. secondary windows are the window manager's business")
|
||||
# Chrome gives its main window and every window a page opens the same
|
||||
# class, so a rule keyed on that class maximises the lesson's popup too.
|
||||
# It was measured doing exactly that. The browser is told to start
|
||||
# maximized instead, and no rule mentions it.
|
||||
check("no window rule claims the browser", "google-chrome" not in rules)
|
||||
check("the browser asks for its own first window", "--start-maximized" in
|
||||
(root / "scripts/classroom-browser").read_text())
|
||||
check("Wonder Ink asks for the same", "--start-maximized" in
|
||||
(root / "scripts/classroom-wonderink").read_text())
|
||||
check("the Chrome window arbiter is gone", not (root / "scripts/classroom-chrome-windows").exists())
|
||||
check("and is not packaged", "classroom-chrome-windows" not in build)
|
||||
|
||||
print()
|
||||
print("4b. the panel is never allowed to stay dead")
|
||||
# Plasma restarts a crashed panel three times a minute and then gives up.
|
||||
# Measured: dead on the third kill. These lines are what make it
|
||||
# unconditional, and losing them would lose the room its only way around.
|
||||
check("restart is unconditional", "Restart=always" in supervision)
|
||||
check("the burst limit is lifted", "StartLimitIntervalSec=0" in supervision)
|
||||
check("the drop-in is packaged", "plasma-plasmashell.service.d" in build)
|
||||
|
||||
print()
|
||||
print("4c. the teacher cannot reach a command line")
|
||||
for restriction in ("run_command=false", "shell_access=false",
|
||||
"action/lock_screen=false",
|
||||
"plasma/plasmashell/unlockedDesktop=false"):
|
||||
check(f"{restriction}", restriction in restrictions)
|
||||
check("the restrictions are immutable", "[KDE Action Restrictions][$i]" in restrictions)
|
||||
|
||||
print()
|
||||
print("4d. clicking a launcher never hides an application")
|
||||
check("minimise on click is off", 'minimizeActiveTaskOnClick", false' in layout)
|
||||
check("there is no minimise button", "ButtonsOnRight=FX" in
|
||||
(root / "config/plasma/xdg/kwinrc").read_text())
|
||||
|
||||
print()
|
||||
print("5. bounded Trixie validation")
|
||||
|
||||
Reference in New Issue
Block a user