NixOS-95/Configurations/Hosts/Default/configuration.nix
2025-07-24 15:19:29 +02:00

139 lines
No EOL
3.3 KiB
Nix

{ 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";
}