docs: write up the classroom v2 result

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
ekklesia
2026-09-10 08:54:41 -05:00
co-authored by Claude Opus 5
parent 2ff9d47be9
commit d87990f0ac
4 changed files with 447 additions and 38 deletions
+6
View File
@@ -70,3 +70,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
pipewire pipewire-pulse wireplumber pulseaudio-utils \
libnotify-bin \
&& rm -rf /var/lib/apt/lists/*
# seatd, so wlroots can open input devices without a login session. The lab
# compositor needs a seat before it can offer the session under test a
# pointer to be clicked with.
RUN apt-get update && apt-get install -y --no-install-recommends seatd \
&& rm -rf /var/lib/apt/lists/*
+38
View File
@@ -0,0 +1,38 @@
#!/bin/bash
# One cold start of the classroom, end to end: a fresh container, a fresh
# user profile, the desktop installed the way the package would install it,
# and the session brought up from nothing. Repeat it to see whether the
# room comes back the same way every time.
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
LAB="$ROOT/tools/lab/lab"
ROUNDS="${1:-1}"
for round in $(seq 1 "$ROUNDS"); do
started=$(date +%s)
"$LAB" up >/dev/null
docker exec classroom-v2-lab /srv/classroom/tools/lab/install-desktop >/dev/null
docker exec classroom-v2-lab sh -c '
install -Dm644 /srv/classroom/config/chrome/policies/managed/ekklesia-classroom.json \
/etc/opt/chrome/policies/managed/ekklesia-classroom.json
install -Dm755 /srv/classroom/scripts/classroom-audio /usr/local/bin/classroom-audio
install -Dm755 /srv/classroom/scripts/classroom-theme /usr/local/bin/classroom-theme
install -Dm644 /srv/classroom/lib/classroom_audio.py \
/usr/local/lib/ekklesia-classroom/classroom_audio.py
install -Dm644 /srv/classroom/lib/classroom_config.py \
/usr/local/lib/ekklesia-classroom/classroom_config.py
install -Dm644 /srv/classroom/systemd/user/ekklesia-classroom-audio.service \
/etc/systemd/user/ekklesia-classroom-audio.service'
"$LAB" session >/dev/null
sleep 6
panel=$(docker exec classroom-v2-lab pgrep -c -x plasmashell || echo 0)
kwin=$(docker exec classroom-v2-lab pgrep -c -x kwin_wayland || echo 0)
applets=$(docker exec classroom-v2-lab sh -c \
'grep -c "^plugin=" /home/classroom/.config/plasma-org.kde.plasma.desktop-appletsrc 2>/dev/null' \
|| echo 0)
printf 'round %s: %ss plasmashell=%s kwin=%s applets=%s\n' \
"$round" "$(( $(date +%s) - started ))" "$panel" "$kwin" "$applets"
done