{ inputs, config, pkgs, username, hostname, gitUsername, theLocale, theTimezone, wallpaperDir, wallpaperGit, theLCVariables, theKBDLayout, ... }: { imports = [ ./hardware.nix ./config/system ]; # Enable networking networking.hostName = "${hostname}"; # Define your hostname networking.networkmanager.enable = true; # Set your time zone time.timeZone = "${theTimezone}"; # Select internationalisation properties i18n.defaultLocale = "${theLocale}"; i18n.extraLocaleSettings = { LC_ADDRESS = "${theLCVariables}"; LC_IDENTIFICATION = "${theLCVariables}"; LC_MEASUREMENT = "${theLCVariables}"; LC_MONETARY = "${theLCVariables}"; LC_NAME = "${theLCVariables}"; LC_NUMERIC = "${theLCVariables}"; LC_PAPER = "${theLCVariables}"; LC_TELEPHONE = "${theLCVariables}"; LC_TIME = "${theLCVariables}"; }; # Define a user account. users.users."${username}" = { homeMode = "755"; isNormalUser = true; description = "${gitUsername}"; extraGroups = [ "networkmanager" "wheel" ]; packages = with pkgs; []; }; # Allow unfree packages nixpkgs.config.allowUnfree = true; # List System Programs environment.systemPackages = with pkgs; [ wget curl git cmatrix lolcat neofetch htop btop libvirt polkit_gnome lm_sensors unzip unrar libnotify v4l-utils ydotool wl-clipboard socat cowsay lsd pkg-config meson hugo gnumake ninja go nodejs symbola noto-fonts-color-emoji material-icons brightnessctl ]; programs.steam.gamescopeSession.enable = true; programs.dconf.enable = true; programs.hyprland = { enable = true; package = inputs.hyprland.packages.${pkgs.system}.hyprland; }; # Some programs need SUID wrappers, can be configured further or are # started in user sessions. programs.mtr.enable = true; programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; environment.variables = { POLKIT_BIN = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; }; # Optimization settings and garbage collection automation nix = { settings.auto-optimise-store = true; gc = { automatic = true; dates = "weekly"; options = "--delete-older-than 7d"; }; }; system.stateVersion = "23.11"; nix.settings.experimental-features = [ "nix-command" "flakes" ]; }