Refactor NixOS configuration: Move GUI apps to desktop modules and create headless config

- Move GUI applications from users/jsutter.nix to appropriate desktop modules:
  * office.nix: slack, signal-desktop
  * gaming.nix: discord, stremio
  * plasma.nix: arc-theme, pinentry, tigervnc
  * dev.nix: putty
  * media.nix (new): vlc, deluge

- Create systems/common-headless.nix for server configurations:
  * Remove GUI dependencies (Flatpak, XDG portals, fonts, graphics drivers)
  * Include only essential CLI tools and server packages
  * Disable X server completely

- Simplify skip01 configuration:
  * Remove Intel graphics drivers and OpenGL support
  * Use headless common configuration
  * Keep unified users/jsutter.nix (no split files)

- Update flake.nix to include new media.nix module in desktop systems

Result: Clean separation between desktop and headless configurations
with improved modularity and maintainability.
This commit is contained in:
Julian Sutter 2025-07-30 23:17:03 -07:00
parent cb68b1cc02
commit 61c3722f5a
10 changed files with 194 additions and 42 deletions

View file

@ -6,13 +6,12 @@
# Boot and kernel modules for Intel NUC
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ "i915" ]; # Intel integrated graphics
boot.initrd.kernelModules = [ ]; # No graphics drivers needed for headless
boot.kernelModules = [ "kvm-intel" ]; # Intel virtualization support
boot.extraModulePackages = [];
# Intel-specific kernel parameters
# Server-specific kernel parameters
boot.kernelParams = [
"i915.enable_guc=2" # Enable GuC and HuC for better power management
"intel_iommu=on" # Enable IOMMU for virtualization
];
@ -20,18 +19,7 @@
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
# Intel graphics support
hardware.opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
extraPackages = with pkgs; [
intel-media-driver # VAAPI driver for newer Intel GPUs
vaapiIntel # VAAPI driver for older Intel GPUs
vaapiVdpau
libvdpau-va-gl
];
};
# No graphics support needed for headless server
# Power management optimized for server use
powerManagement = {
@ -61,7 +49,7 @@
}
];
# Enable hardware monitoring
# Enable hardware monitoring (CLI only)
hardware.sensor.iio.enable = true;
# Network performance tuning for server use