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:
ekklesia
2026-09-10 09:03:26 -05:00
co-authored by Claude Opus 5
parent 6e4786f448
commit 4c3f19d599
17 changed files with 171 additions and 1778 deletions
-3
View File
@@ -1,3 +0,0 @@
if [ -z "$WAYLAND_DISPLAY" ] && [ "${XDG_VTNR:-}" = "1" ]; then
exec sway -c /etc/ekklesia-classroom/sway/config
fi
-102
View File
@@ -1,102 +0,0 @@
/* Ekklesia Classroom dock
*
* A template, not plain CSS. classroom-dock substitutes the bracketed
* measurements at startup from UI_SCALE in device.conf, so a room can
* be tuned for its TV without anyone editing this file. At UI_SCALE=1.0
* every token resolves to the value it had before scaling existed.
*/
window#classroom-dock,
window#classroom-clock {
background-color: transparent;
background-image: none;
border: none;
box-shadow: none;
}
/* Main floating dock */
.dock {
background-image: none;
background-color: rgba(34, 38, 50, 0.62);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: @dock-radius@px;
padding: @dock-padding-v@px @dock-padding-h@px;
/* Important: no shadow here.
GTK was clipping it against the rectangular window edge. */
box-shadow: none;
}
button.dock-button {
color: white;
background-image: none;
background-color: rgba(255, 255, 255, 0.05);
border: none;
border-radius: @button-radius@px;
padding: @button-padding@px;
margin: 0;
min-width: @button-size@px;
min-height: @button-size@px;
box-shadow: none;
outline: none;
}
button.dock-button:hover {
background-image: none;
background-color: rgba(70, 75, 90, 0.85);
box-shadow: none;
}
button.dock-button:active {
background-image: none;
background-color: rgba(85, 90, 108, 0.90);
box-shadow: none;
}
button.dock-button:focus {
background-image: none;
background-color: rgba(255, 255, 255, 0.08);
box-shadow: none;
outline: none;
}
button.dock-button image {
color: white;
-gtk-icon-effect: none;
}
/* Shown in place of the icon while an application is starting. */
button.dock-button spinner {
color: white;
opacity: 1;
min-width: @button-spinner@px;
min-height: @button-spinner@px;
}
/* Clock */
.clock {
color: white;
background-image: none;
background-color: rgba(34, 38, 50, 0.62);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: @clock-radius@px;
padding: @clock-padding-v@px @clock-padding-h@px;
font-size: @clock-font@px;
font-weight: 600;
box-shadow: none;
}
-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 640 640"><path fill="#ffffff" d="M161.423 279.11L69.816 120.474C128.458 47.068 218.708-.012 319.976-.012c117.168 0 219.57 62.965 275.33 156.888H334.175c-4.69-.39-9.438-.638-14.245-.638-76.158 0-140.352 52.288-158.553 122.848l.048.024zm273.121-75.958H617.96c14.197 36.202 22.04 75.64 22.04 116.872C640 495.55 498.668 638.04 323.626 640l130.88-226.692c18.449-26.492 29.244-58.642 29.244-93.284 0-45.71-18.839-87.12-49.205-116.872zM203.742 320.024c0-64.099 52.158-116.234 116.234-116.234 64.087 0 116.246 52.159 116.246 116.234 0 64.088-52.158 116.246-116.246 116.246-64.076 0-116.234-52.158-116.234-116.246zm160.112 157.762l-91.596 158.695C118.17 613.438 0 480.515 0 320.024c0-56.988 14.918-110.505 41.044-156.876l130.643 226.278c26.162 55.678 82.808 94.372 148.277 94.372 15.19 0 29.87-2.091 43.879-5.965l.012-.047z"/></svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

-48
View File
@@ -1,48 +0,0 @@
# Ekklesia Classroom notifications
# Managed by the ekklesia-classroom package.
#
# Matched to the dock: same dark slate (#222632), same hairline white
# border, same rounded corners, white text. Kept slightly more opaque
# than the dock so text stays readable over the wallpaper and over video.
#
# A template, not a finished config. classroom-notifications resolves the
# bracketed measurements from UI_SCALE in device.conf and starts mako on
# the result. At UI_SCALE=1.0 they resolve to the values they had before
# scaling existed.
font=DejaVu Sans @font-size@
background-color=#222632e6
text-color=#ffffffff
border-color=#ffffff21
progress-color=over #464b5ae6
border-size=1
border-radius=@radius@
padding=@padding-v@,@padding-h@
margin=@margin@
width=@width@
height=@height@
anchor=top-right
layer=overlay
sort=-time
max-visible=3
markup=1
format=<b>%s</b>\n%b
icons=1
max-icon-size=@icon-size@
default-timeout=6000
[urgency=low]
default-timeout=4000
[urgency=critical]
background-color=#3a2632f0
border-color=#ff8a8a59
default-timeout=0
-62
View File
@@ -1,62 +0,0 @@
# Ekklesia Classroom
# Managed by the ekklesia-classroom package.
set $mod Mod4
# Wallpaper
output * bg /usr/share/backgrounds/ekklesia/classroom-default.png fill
# UI scale first, so every surface below comes up at the right size
# instead of being resized underneath itself. This scales the whole
# session — Chrome, VLC and the dock alike — not just our own windows.
exec --no-startup-id /usr/local/bin/classroom-scale
# Notifications, started before the dock so nothing can race D-Bus into
# activating an unstyled mako first. The wrapper resolves the styling at
# the room's UI scale and execs mako, so the process is still just mako.
exec --no-startup-id /usr/local/bin/classroom-notifications
# The first Chrome top-level stays tiled; later indistinguishable Chrome
# containers are floated. Which is which depends on creation order, so this
# has to be stateful Sway IPC logic rather than a broad for_window rule.
# The close affordance for a popup lives in the dock.
exec --no-startup-id /usr/local/bin/classroom-chrome-windows
# Popups are borderless like the main browser, so they have no title bar to
# drag. Chrome's own tab strip moves them, and Super+drag always works.
floating_modifier $mod normal
# Ekklesia Classroom dock
exec --no-startup-id /usr/local/bin/classroom-dock
# Keep the interface intentionally minimal.
# Additional classroom controls are added explicitly by Ekklesia Classroom.
include /etc/sway/config.d/*
# Chrome draws its own tab strip with window controls in it, so sway's
# title bar above that is a second, redundant one. Verified on the
# endpoint: Chrome is an xdg_shell client with app_id "google-chrome",
# and sway was giving it border "normal". The class rule covers the case
# where Chrome falls back to XWayland.
#
# This removes the compositor's decoration only. Chrome keeps its tabs
# and address bar, stays a normal window, and still maximises and
# minimises exactly as before.
for_window [app_id="google-chrome"] border none
for_window [class="(?i)google-chrome"] border none
# The DVD player is an appliance screen, not a desktop window. VLC takes
# the whole display itself; this removes the title bar sway would
# otherwise draw above the video. classroom-dvd-session covers the
# wallpaper with black until VLC is up, so there is never a gap.
for_window [class="(?i)vlc"] border none
for_window [app_id="(?i)vlc"] border none
# Minimize and restore.
#
# classroom-window parks the window on a hidden workspace as an ordinary
# tiled container, so restoring brings it back maximised instead of as a
# floating, draggable window the way the scratchpad did.
bindsym $mod+m exec /usr/local/bin/classroom-window minimize
bindsym $mod+Shift+m exec /usr/local/bin/classroom-window restore-last
-35
View File
@@ -1,35 +0,0 @@
{
"layer": "top",
"position": "bottom",
"height": 56,
"spacing": 12,
"modules-left": [
"custom/browser",
"custom/dvd",
"custom/sanctuary"
],
"modules-right": [
"clock"
],
"custom/browser": {
"format": "Browser",
"on-click": "/usr/local/bin/classroom-browser"
},
"custom/dvd": {
"format": "DVD",
"on-click": "true"
},
"custom/sanctuary": {
"format": "Sanctuary",
"on-click": "true"
},
"clock": {
"format": "{:%-I:%M %p}"
}
}
-20
View File
@@ -1,20 +0,0 @@
* {
font-family: sans-serif;
font-size: 18px;
}
window#waybar {
background: rgba(20, 20, 20, 0.92);
color: white;
}
#custom-browser,
#custom-dvd,
#custom-sanctuary {
padding: 0 24px;
margin: 6px 4px;
}
#clock {
padding: 0 18px;
}