# Ekklesia Classroom session policy. # # Installed to /etc/xdg/kdeglobals, where it is the bottom of Plasma's # configuration cascade. Every group is marked [$i] — immutable — so a # teacher, a stray click or a misbehaving application cannot override it # from the user's own configuration. This is KDE's own Kiosk mechanism: # nothing here is achieved by deleting a binary or hiding a menu entry. # # Lifting a restriction for maintenance is a one-line edit to this file # followed by a session restart, which is what makes the appliance # serviceable rather than merely locked. [KDE Action Restrictions][$i] # No way to reach a shell, a command line, or an arbitrary program. action/kdesktop_rmb=false action/kwin_rmb=false action/openwith=false action/switch_user=false action/start_new_session=false action/lock_screen=false run_command=false shell_access=false logout=false # The desktop and the panel are a fixed part of the appliance. editable_desktop_icons=false editable_bookmarks=false movable_toolbars=false plasma/plasmashell/unlockedDesktop=false plasma-desktop/scripting_console=false # Nothing in the classroom should offer to file a bug or open a manual. action/help_report_bug=false action/help_about_kde=false action/help_contents=false # The network applet reads this one before it draws its own settings # button and its "Configure Network Connections…" entry — see # main.qml, which calls # KAuthorized.authorizeControlModule("kcm_networkmanagement"). # # This is only the first of two layers, and on its own it would be # security theatre. The applet ALSO puts "Show Network's QR Code" and # "Configure…" on every saved wireless connection as contextual actions, # and neither of those consults this key — measured on Plasma 6.3. The QR # code contains the pre-shared key. What actually refuses them is the # polkit rule in org.ekklesia.classroom.network.rules, which answers at # NetworkManager rather than in a menu. This key is here so that a teacher # is not shown doors that will not open. [KDE Control Module Restrictions][$i] kcm_networkmanagement=false # Not immutable. Marking this group [$i] froze the colour scheme so hard # that `classroom-theme light` changed the running session and then lost # the change at the next start — measured. These are defaults for a room # that has no settings application anyway; the lock belongs on the # restrictions above, not on the palette. [General] # Sized for a television, not a desk. # # Everything Plasma draws is measured in grid units, and a grid unit is # the height of this font: the notification card's width, its padding, # its icon and its buttons all come from here. There is no setting that # makes a notification larger on its own, and the supported lever is this # one — which is also the reason it is used rather than a replacement # notification plasmoid. # # Measured at 100% in the lab: Breeze's 10 point gives a card about 350 # by 110 pixels with title text a volunteer at the back of the room # cannot read; 15 point gives about 410 by 145 with a title that carries. # The bar does not change, because its height is fixed and the clock # sizes itself to it. # # At 200% the display scale doubles all of it again, so a 4K television # gets the same card at twice the size without a second number. font=Noto Sans,15,-1,5,50,0,0,0,0,0 smallestReadableFont=Noto Sans,13,-1,5,50,0,0,0,0,0 menuFont=Noto Sans,15,-1,5,50,0,0,0,0,0 toolBarFont=Noto Sans,15,-1,5,50,0,0,0,0,0 ColorScheme=EkklesiaDark AccentColor=79,179,168 # The teacher's own words are not decoration: keep text rendering plain # and readable rather than styled. XftAntialias=true XftHintStyle=hintslight XftSubPixel=rgb [KDE] widgetStyle=Breeze # One key, marked immutable on its own rather than by freezing the group. # # This is the name plasmashell reads to decide which layout script builds a # panel for a session that has none, so it decides whether the room comes # up as the classroom or as stock Plasma. A migrated machine reached this # experiment with a user profile that had been through other desktops, and # a user's own kdeglobals sits ahead of every system directory in the # cascade. Immutable here means no leftover profile, and no stray write by # a settings dialog that does not exist in this room anyway, can answer # that question differently. The palette below stays writable, because # classroom-theme is allowed to change it. LookAndFeelPackage[$i]=org.ekklesia.classroom.desktop SingleClick=false AnimationDurationFactor=0.5 [Icons] Theme=breeze-dark [KFileDialog Settings][$i] Allow Expansion=false Automatically select filename extension=true Show Bookmarks=false Show Full Path=false Show Inline Previews=false Show Speedbar=false Sort directories first=true