mako 1.10 only searches $XDG_CONFIG_HOME/mako/config and ~/.mako/config
— confirmed against the shipped binary, and mako(5) documents no system
path. The config installed to /etc/xdg/mako/config would have been read
by nothing and every notification would have come out stock.
Ship it alongside the rest of the package's config in
/etc/ekklesia-classroom/mako/ and name it on mako's command line, which
also keeps it dpkg-owned instead of writing into the user's home.
Start mako before the dock as well, so nothing can send a notification
early and have D-Bus activate an unstyled instance that then holds the
bus name for the rest of the session.
Co-Authored-By: Claude Opus 5 <[email protected]>
Chrome stays a full browser. The managed policy only removes the things
a volunteer should never be asked about — the first-run tour, the
default-browser prompt, sync and sign-in promos, the profile picker —
and pins the Home button to Wonder Ink so there is always one obvious
way back. Startup URL is a recommended policy rather than a managed one,
so a teacher can still change it. Nothing restricts where they browse,
and the profile is untouched, so YouTube and other logins survive
reboots and updates.
Notifications were still stock mako, which looked nothing like the rest
of the shell. Give them the dock's palette: the same dark slate, the
same hairline white border, rounded, white text, top right. Kept a
little more opaque than the dock so text stays readable over video, and
on the overlay layer so a parent-call alert can still reach someone
watching a fullscreen DVD.
mako was only ever reaching the session through D-Bus activation. Start
it from the sway config so it is running before anything needs it.
classroom-notify-test sends a sample so the styling can be checked
without waiting for a real event.
Co-Authored-By: Claude Opus 5 <[email protected]>
The scratchpad technically minimized Chrome, but sway hands scratchpad
windows back floating, so restoring gave a draggable window instead of
the maximized one the user put away. Park windows on a hidden workspace
as ordinary tiled containers instead, and move them back to the visible
workspace on restore.
classroom-window carries the whole state machine, so the dock buttons
and Super+M share one implementation:
not running -> launch
unfocused -> focus
focused -> minimize
minimized -> restore, tiled and maximized
Fullscreen is dropped on the way out, since a container parked while
still fullscreen keeps drawing over everything else. floating disable on
the way back also rescues windows left floating by the old scratchpad
path.
Super+Shift+M restores the newest minimized window, so nothing can get
stranded on the hidden workspace.
Co-Authored-By: Claude Opus 5 <[email protected]>