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
@@ -1,3 +0,0 @@
|
||||
if [ -z "$WAYLAND_DISPLAY" ] && [ "${XDG_VTNR:-}" = "1" ]; then
|
||||
exec sway -c /etc/ekklesia-classroom/sway/config
|
||||
fi
|
||||
@@ -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 +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 |
@@ -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
|
||||
@@ -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
|
||||
@@ -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}"
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user