nixos/hosts/FredOS-Kayla.nix

97 lines
3.6 KiB
Nix
Raw Normal View History

# 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;
2026-08-10 09:44:17 +01:00
# 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";
};
};
}