fix: keep the DVD player whole
Removing gtk-layer-shell from the dependencies broke classroom-dvd on the first run, and deleting the dock's stylesheet took the DVD control bar's styling with it. Both go back: the template under a name that says what still uses it, and the dependency with a line in the package description explaining that it is there for the disc player and not for a dock. A probe overlay confirms gtk-layer-shell works under KWin, so the loading cover survives the move. The focus helper still speaks sway, which is written down rather than papered over. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
682e3b0552
commit
d5cc6e463f
@@ -322,6 +322,27 @@ back from four consecutive kills.
|
||||
|
||||
### DVD
|
||||
|
||||
**How much of the DVD player survives this change was measured, not
|
||||
assumed**, because the room's disc playback works and breaking it for
|
||||
tidiness would be a bad trade.
|
||||
|
||||
* Its loading cover and control bar are `gtk-layer-shell` surfaces. KWin
|
||||
implements `zwlr_layer_shell_v1` — the Plasma panel is one — and a probe
|
||||
overlay came up full-screen under it. So the DVD surfaces keep working
|
||||
and `python3-gi` and `gir1.2-gtklayershell-0.1` stay in the package.
|
||||
Removing them broke `classroom-dvd toggle` immediately, which is how this
|
||||
was found.
|
||||
* Its stylesheet was the dock's. The dock is gone; the template survives as
|
||||
`config/overlay/style.css.in`, renamed to say what still uses it.
|
||||
* `classroom-dvd` calls `classroom-window`, which speaks sway's IPC.
|
||||
Measured with no sway running: it exits 0 and does nothing, so it
|
||||
degrades rather than hanging — but the DVD player's focus handling is not
|
||||
yet ported, and that is the largest piece of work this change leaves.
|
||||
* One behavioural difference: under sway the loading cover hid the dock;
|
||||
under KWin the panel draws above it, so the bar stays visible while a
|
||||
disc spins up. Fullscreen VLC still covers everything, which is the state
|
||||
that matters.
|
||||
|
||||
`/usr/share/solid/actions/ekklesia-dvd.desktop` with an
|
||||
`X-KDE-Solid-Predicate` for a video DVD. Plasma's device notifier offers
|
||||
"Play the DVD" while a disc is in the drive and withdraws it when the disc
|
||||
@@ -443,11 +464,15 @@ running · `state-4-minimized` · `state-5-restored` · `v2-testpage` a
|
||||
maximised browser · `v2-secondary-window` a window a page opened, floating ·
|
||||
`v2-print-dialog` · `v2-notification-crop` · `v2-fullscreen` · `recover-panel`
|
||||
the bar rebuilt from nothing · `lock-desktop-rmb`, `lock-panel-rmb`,
|
||||
`lock-krunner` the lockdown.
|
||||
`lock-krunner` the lockdown · `v2-from-package` the desktop as installed
|
||||
from the `.deb` · `v2-layershell` a gtk-layer-shell overlay under KWin, which
|
||||
is what the DVD player's loading cover is made of.
|
||||
|
||||
## Not done, and honest about it
|
||||
|
||||
* **DVD end to end.** No drive in the lab.
|
||||
* **DVD end to end.** The overlay surfaces and disc detection were checked;
|
||||
playback was not, and the focus helper is not ported. See *the DVD
|
||||
player* above.
|
||||
* **Real audio hardware.** Policy tested as a function; no card to apply it to.
|
||||
* **Video decode and performance.** Software rendering only.
|
||||
* **SDDM.** Recommended over the current `bash_profile` `exec`, because when
|
||||
@@ -458,8 +483,68 @@ the bar rebuilt from nothing · `lock-desktop-rmb`, `lock-panel-rmb`,
|
||||
shape the package needs but is not the package.
|
||||
* **Parent Call and Live View.** Placed in the architecture, not built. Live
|
||||
View's pin is KWin's Keep Above, which is already a title-bar button.
|
||||
* **UI scale.** Plasma's own display scaling replaces `classroom-scale`; not
|
||||
exercised at 1.25 or 1.5.
|
||||
* **UI scale.** `classroom-scale` now asks `kscreen-doctor` instead of the
|
||||
compositor, and 1.25 was applied and read back correctly. The *look* of it
|
||||
could not be judged: a nested session shrinks its own canvas to the
|
||||
logical size instead of keeping the display's mode, so everything got
|
||||
smaller rather than larger. On a real output it does the opposite. Judge
|
||||
this one on hardware.
|
||||
* **Network states.** plasma-nm is in the bar and live — it correctly showed
|
||||
a problem state throughout, because Docker configures the container's
|
||||
interface before NetworkManager sees it and NM reports limited
|
||||
connectivity for it. Online, connecting and offline transitions need a
|
||||
machine whose network NetworkManager actually owns.
|
||||
|
||||
## Unresolved risks
|
||||
|
||||
In the order I would worry about them.
|
||||
|
||||
1. **The DVD player is half-ported.** Its surfaces and its disc detection
|
||||
work; its window focusing still speaks sway and silently does nothing.
|
||||
A room that uses DVDs should not take this build until that is finished
|
||||
and a real disc has been played.
|
||||
2. **SDDM is configured and untested.** It cannot be exercised in a
|
||||
container, and it is the thing that starts the session. If the config is
|
||||
wrong the room boots to nothing. This is the first thing to check on a
|
||||
VM or a bench machine, and it is why the checklist below starts there.
|
||||
3. **No real audio hardware has been through the policy.** The decision is
|
||||
well tested; applying it is not. A wrong `pactl set-card-profile` on
|
||||
real hardware is a silent room.
|
||||
4. **Plasma is a much larger surface than sway.** More code, more services,
|
||||
more that can regress in a Debian point release. The mitigations are
|
||||
that all of it is supervised, that Debian 13 is frozen apart from
|
||||
security updates, and that the OTA channel structure already lets a
|
||||
build be held back. But it is a real trade and it should be named.
|
||||
5. **Performance is unmeasured on classroom hardware.** Everything here ran
|
||||
on llvmpipe, which says nothing useful about an old office machine with
|
||||
Intel graphics. Plasma with compositing is heavier than sway.
|
||||
6. **Chrome remains a third-party repository.** Unchanged from today, but
|
||||
still the one part of the stack Debian does not update.
|
||||
7. **The wallpaper is a stand-in.** The real illustration has not been seen
|
||||
against this palette.
|
||||
|
||||
## Would I trust it on a classroom computer, unattended, for a Sunday?
|
||||
|
||||
**For a room that does not use DVDs: yes, after the checks below.** The
|
||||
reasoning is not that Plasma is nicer. It is that the four failures the
|
||||
church actually reported are all failures of code we wrote, three of them
|
||||
are gone because the code is gone, and the fourth — the panel disappearing
|
||||
— went from *reproducible on the third crash* to *survived eight kills* and
|
||||
is now a supervised system service rather than a process started by a
|
||||
compositor and forgotten.
|
||||
|
||||
**For a room that uses DVDs: not yet.** Finish the focus port and play a
|
||||
real disc first.
|
||||
|
||||
Before any room:
|
||||
|
||||
1. Boot a bench machine from the package and confirm SDDM autologins, and
|
||||
that killing the session brings it back rather than a shell.
|
||||
2. Put a television on HDMI, switch it on after the computer, and confirm
|
||||
sound arrives without touching anything, with the browser already open.
|
||||
3. Print to Elmer.
|
||||
4. Play a DVD, if that room uses them.
|
||||
5. Leave it running from Friday to Sunday.
|
||||
|
||||
## Alternate operating systems
|
||||
|
||||
|
||||
Reference in New Issue
Block a user