# Put the classroom's settings into the session's configuration cascade. # # This is the file the migration failure turned on. Everything the room is # — the panel layout, the lock screen that must never appear, the idle # behaviour, the Kiosk restrictions — lives in /etc/ekklesia-classroom/xdg # and reaches Plasma only if that directory is in XDG_CONFIG_DIRS. It was # set in /etc/environment.d, which systemd's user manager reads. Measured # on a real machine and then reproduced in the lab: that is not enough. # # startplasma sources /etc/xdg/plasma-workspace/env/*.sh at session start, # and Debian's env.sh there sets XDG_CONFIG_DIRS from scratch when the # variable is empty — which it is, because SDDM starts the session through # PAM, and PAM does not read /etc/environment.d. startplasma then pushes # its own environment into the user manager, so the value from # /etc/environment.d was not merely bypassed, it was overwritten for every # user service as well. The room came up as stock Debian Plasma: kickoff, # a pager, a system tray, the Debian wallpaper, and a lock screen. # # So the classroom sets it where Plasma itself looks. The name sorts after # env.sh, so this appends to Debian's value rather than replacing it, and # the whole thing is a no-op if the directory is already there. # # The /etc/environment.d file stays: it covers user services that start # before, or without, a Plasma session. case ":${XDG_CONFIG_DIRS:-}:" in *:/etc/ekklesia-classroom/xdg:*) ;; *) XDG_CONFIG_DIRS="/etc/ekklesia-classroom/xdg:${XDG_CONFIG_DIRS:-/etc/xdg}" export XDG_CONFIG_DIRS ;; esac