hosts: add FredOS-Kayla — plain KDE Plasma desktop for kayla

This commit is contained in:
rope 2026-08-10 08:44:50 +01:00
parent ccf6badd78
commit 0e1c540cca
5 changed files with 104 additions and 1 deletions

View file

@ -51,6 +51,7 @@
FredOS-Gaming = mkHost "FredOS-Gaming" [ ./hosts/hardware/FredOS-Gaming.nix ];
FredOS-Mediaserver = mkHost "FredOS-Mediaserver" [ ./hosts/hardware/FredOS-Mediaserver.nix ];
FredOS-Macbook = mkHost "FredOS-Macbook" [ ./hosts/hardware/FredOS-Macbook.nix ];
FredOS-Kayla = mkHost "FredOS-Kayla" [ ./hosts/hardware/FredOS-Kayla.nix ];
# Mediaserver's services on fake hardware, for testing from-scratch
# bring-up (arr-interconnect especially) in a throwaway VM:

42
hosts/FredOS-Kayla.nix Normal file
View file

@ -0,0 +1,42 @@
# 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;
};
services.desktopManager.plasma6.enable = true;
# Dark mode: stylix (imported for every host by mkHost, polarity = "dark",
# autoEnable = true) drives its `kde` target off the HM user below, which
# writes kdeglobals + the Breeze colour scheme. No manual Plasma theming.
environment.systemPackages = with pkgs; [
google-chrome
spotify
vesktop
faugus-launcher
mangohud
gamescope
];
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
};
boot.loader.systemd-boot.configurationLimit = 5;
# 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; } ];
home-manager.users.kayla = { ... }: {
home.stateVersion = "25.11";
};
};
}

View file

@ -0,0 +1,52 @@
#./hosts/hardware/FredOS-Kayla.nix
#
# Same hardware as FredOS-Gaming apart from the drives (and the monitor, which
# Plasma's own display settings handle — nothing to pin here). Kept off the
# CachyOS kernel/attic substituter the gaming box uses: stock
# linuxPackages_latest from common.nix, one less input to babysit.
#
# The fileSystems below are PLACEHOLDERS — this evaluates but will not boot.
# Run `nixos-generate-config --show-hardware-config` on the machine and paste
# the real UUIDs over them, then push.
{ config, lib, pkgs, modulesPath, ... }:
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ "amdgpu" ];
boot.kernelModules = [ "kvm-amd" "ntsync" ];
boot.extraModulePackages = [ ];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.kernelParams = [ "amdgpu.ppfeaturemask=0xffffffff" "amdgpu.freesync_video=1" ];
fileSystems."/" = {
device = "/dev/disk/by-label/nixos"; # TODO: replace with the real UUID
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/BOOT"; # TODO: replace with the real UUID
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [ ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.enableRedistributableFirmware = true;
networking.hostName = "FredOS-Kayla";
hardware.graphics = {
enable = true;
enable32Bit = true;
};
services.xserver.videoDrivers = [ "amdgpu" ];
system.stateVersion = "25.11";
}

View file

@ -1,7 +1,7 @@
# audio.nix
{ config, pkgs, lib, ... }:
{
config = lib.mkIf (lib.elem config.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ]) {
config = lib.mkIf (lib.elem config.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" "FredOS-Kayla" ]) {
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {

View file

@ -22,4 +22,12 @@
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID12fECfsFS+vOXUa9na4nhBtx9DVbGD12aRQ8a9Bh0Z fredrik@work-laptop" # Work laptop (Windows), replaced old work PC key 2026-07-28
];
};
# Kayla only exists on her own box. Password with `passwd kayla` after the
# first boot. wheel so `update` can sudo; no NOPASSWD rule (that's fred's).
users.users.kayla = lib.mkIf (config.networking.hostName == "FredOS-Kayla") {
isNormalUser = true;
description = "Kayla";
extraGroups = [ "networkmanager" "wheel" "video" ];
};
}