# hosts/FredOS-Kayla.nix — Kayla's desktop. Deliberately plain: stock KDE # Plasma 6 on SDDM, no Hyprland/quickshell/zen (all of those are gated to # FredOS-Gaming/FredOS-Macbook and stay off here). Windows refugees get a # taskbar, a start menu and a settings app that look like what they left. { config, pkgs, lib, ... }: { config = lib.mkIf (config.networking.hostName == "FredOS-Kayla") { services.displayManager.sddm = { enable = true; wayland.enable = true; # fred exists on every host for admin/SSH, but this is her machine — # keep the greeter to one face. Still reachable over SSH and on a TTY. settings.Users.HideUsers = "fred"; }; services.desktopManager.plasma6.enable = true; # Discover is a package manager for a machine that has one already, and it # can't install anything here. Bazaar + Flatpak covers "I want an app". environment.plasma6.excludePackages = [ pkgs.kdePackages.discover ]; services.flatpak.enable = true; # Dark mode: stylix's `kde` target writes kdeglobals for the HM users below. # The palette is pinned to Breeze Dark rather than left to derive itself # from walls/wallpaper.png — otherwise her whole desktop re-colours every # time *my* wallpaper changes. Fixed values, and they're the ones KDE's own # apps ship with, so Plasma looks like stock Plasma. stylix.base16Scheme = { scheme = "Breeze Dark"; author = "KDE"; base00 = "232629"; # view background base01 = "2a2e32"; base02 = "31363b"; # window background / raised surface base03 = "4d5157"; # borders, disabled base04 = "7f8c8d"; # inactive text base05 = "eff0f1"; # normal text base06 = "fcfcfc"; base07 = "ffffff"; base08 = "da4453"; # red base09 = "f67400"; # orange base0A = "fdbc4b"; # yellow base0B = "27ae60"; # green base0C = "1abc9c"; # cyan base0D = "3daee9"; # blue — Breeze's accent base0E = "9b59b6"; # purple base0F = "8e44ad"; # base16's "brown" slot; Breeze has no brown }; # Stylix's chromium target is a *managed policy* (BrowserThemeColor written # to /etc/opt/chrome/policies), which is what makes Chrome say "your # administrator has set a default theme" and greys out the appearance # controls — including "use system title bar and borders". Off, so Chrome # is hers to configure. stylix.targets.chromium.enable = false; environment.systemPackages = with pkgs; [ google-chrome spotify vesktop faugus-launcher bazaar mangohud gamescope ]; programs.steam = { enable = true; remotePlay.openFirewall = true; }; boot.loader.systemd-boot.configurationLimit = 5; # Remote admin: fred's keys (settings/users.nix) already include the gaming # PC, and fred has NOPASSWD sudo everywhere, so `ssh fred@FredOS-Kayla` + # `update` rebuilds her box without touching it. Keys only, no root. services.openssh = { enable = true; settings = { PermitRootLogin = "no"; PasswordAuthentication = false; }; }; # stylix's qt target only speaks qtct and warns under Plasma; its kde # target already paints Qt apps via kdeglobals. Both HM users on this box. home-manager.sharedModules = [ { stylix.targets.qt.enable = false; # Colours yes, wallpaper no — she picks her own in Plasma's wallpaper # settings and it survives rebuilds. stylix.targets.kde.useWallpaper = false; } ]; home-manager.users.kayla = { ... }: { home.stateVersion = "25.11"; }; }; }