{ inputs, config, pkgs, username, hostname, ... }: let inherit (import ./options.nix) theLocale theTimezone gitUsername theShell wallpaperDir wallpaperGit theLCVariables theKBDLayout; in { imports = [ inputs.nixvim.nixosModules.nixvim ./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}"; }; console.keyMap = "${theKBDLayout}"; # Define a user account. users = { mutableUsers = true; users."${username}" = { homeMode = "755"; hashedPassword = "$6$YdPBODxytqUWXCYL$AHW1U9C6Qqkf6PZJI54jxFcPVm2sm/XWq3Z1qa94PFYz0FF.za9gl5WZL/z/g4nFLQ94SSEzMg5GMzMjJ6Vd7."; isNormalUser = true; description = "${gitUsername}"; extraGroups = [ "networkmanager" "wheel" "libvirtd" ]; shell = pkgs.${theShell}; ignoreShellProgramCheck = true; packages = with pkgs; []; }; }; 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; experimental-features = [ "nix-command" "flakes" ]; substituters = ["https://hyprland.cachix.org"]; trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ]; }; gc = { automatic = true; dates = "weekly"; options = "--delete-older-than 7d"; }; }; system.stateVersion = "23.11"; }