{ config, pkgs, host, lib, inputs, userconf, ... }: let # Load user-specific variables userVars = import ./variables/user-vars.nix; inherit (userVars) username gitUsername gitEmail keyboardLayout; nixDirectory = "/home/${username}/NixOS"; in { ################################################################ # Module Imports ################################################################ imports = [ # Host-specific hardware configuration (autogenerated) ./hardware-configuration.nix # System-level user definition ./user.nix # Base and global modules ../../../Modules/System # Home Manager integration inputs.home-manager.nixosModules.home-manager ]; ################################################################ # Display & Desktop Environment ################################################################ services.xserver = { enable = true; desktopManager.xfce.enable = true; xkb = { layout = "de"; variant = ""; }; }; services.xserver.displayManager.lightdm.enable = false; services.displayManager.sddm = { enable = true; package = pkgs.qt6Packages.sddm; }; xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; ################################################################ # System Packages (XFCE & Utilities) ################################################################ environment.systemPackages = with pkgs; [ xdg-desktop-portal-gtk # XFCE Core xfce.xfwm4 xfce.xfce4-panel xfce.xfce4-session xfce.xfce4-settings xfce.thunar xfce.mousepad xfce.xfce4-terminal xfce.xfce4-appfinder xfce.xfce4-power-manager xfce.xfce4-notifyd xfce.xfce4-whiskermenu-plugin # Optional Extras xfce.gigolo xfce.xfce4-screenshooter xfce.parole # xfce.xfce4-clipman # other: zsh ]; programs.steam = { enable = true; remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers }; services.openssh.enable = true; programs.zsh = { enable = true; ohMyZsh = { enable = true; theme = "xiong-chiamiov-plus"; plugins = ["git"]; }; }; ################################################################ # Home Manager Configuration ################################################################ home-manager = { useGlobalPkgs = true; useUserPackages = true; backupFileExtension = "delme-HMbackup"; users.${username} = import ./home/home.nix { inherit config nixDirectory pkgs; }; }; ################################################################ # Bootloader ################################################################ boot.loader = { grub = { enable = true; efiSupport = false; useOSProber = false; devices = ["nodev"]; }; systemd-boot.enable = false; efi.canTouchEfiVariables = false; }; ################################################################ # System Version ################################################################ system.stateVersion = "25.05"; }