# roles/thin-client/session/branding.nix # # Light branding: corporate wallpaper, SDDM logo overlay, Breeze Light, # Property-of-footer (hostname + IT hotline) on the lock screen. # Q17 decisions: Light Branding, no login banner, user may adjust KDE. { config, lib, pkgs, ... }: let inherit (lib) mkIf; cfg = config.az.tc; in { options.az.tc.branding = { hotline = lib.mkOption { type = lib.types.str; default = "+49 30 1234567"; # TODO: real hotline description = "IT-Hotline phone number for the property-of footer."; }; wallpaper = lib.mkOption { type = lib.types.path; default = ./assets/wallpaper.svg; description = '' Path to a corporate wallpaper image (JPEG or SVG). Replace `roles/thin-client/session/assets/wallpaper.svg` with the real asset, or override this option. ''; }; logo = lib.mkOption { type = lib.types.path; default = ./assets/logo.svg; description = '' Path to the corporate logo (SVG or PNG). Used in SDDM and lock screen footer. ''; }; company = lib.mkOption { type = lib.types.str; default = "AzIntec GmbH"; description = "Company name shown in the property-of footer."; }; }; config = mkIf cfg.enable { environment = { etc = { # Wallpaper — install to /etc/az-wallpaper so KDE's wallpaper plugin # can find it via the standard search path. "az-wallpaper".source = config.az.tc.branding.wallpaper; # Default Plasma configuration as /etc/xdg — KDE reads these as # the system-wide defaults. User-specific changes are layered on top. "xdg/kdeglobals".text = '' [General] ColorScheme=Breeze Light [KDE] widgetStyle=Breeze [Icons] Theme=breeze [Wallpaper] Image=file:///etc/az-wallpaper ''; # Lock-screen footer (rendered by kscreenlocker_greet). "xdg/kscreenlockerrc".text = '' [Greeter] Logo=${config.az.tc.branding.logo} Footer=${config.az.tc.branding.company} · ${config.networking.hostName} · IT-Hotline: ${config.az.tc.branding.hotline} ''; }; }; # Property-of-footer via SDDM theme config. Lightweight: we don't # ship a full custom SDDM theme — we just set the footer string that # the default Breeze SDDM theme shows. services.displayManager.sddm.settings.Theme = { Wallpaper = config.az.tc.branding.wallpaper; Logo = config.az.tc.branding.logo; }; }; }