{ pkgs, config, ... }: let hostname = config.var.hostname; keyboardLayout = config.var.keyboardLayout; configDir = config.var.configDirectory; in { networking.hostName = hostname; networking.networkmanager.enable = true; systemd.services.NetworkManager-wait-online.enable = false; system.autoUpgrade = { enable = config.var.autoUpgrade; dates = "04:00"; flake = "${configDir}"; flags = [ "--update-input" "nixpkgs" "--commit-lock-file" ]; allowReboot = false; }; time.timeZone = config.var.timeZone; i18n.defaultLocale = config.var.defaultLocale; i18n.extraLocaleSettings = { LC_ADDRESS = config.var.extraLocale; LC_IDENTIFICATION = config.var.extraLocale; LC_MEASUREMENT = config.var.extraLocale; LC_MONETARY = config.var.extraLocale; LC_NAME = config.var.extraLocale; LC_NUMERIC = config.var.extraLocale; LC_PAPER = config.var.extraLocale; LC_TELEPHONE = config.var.extraLocale; LC_TIME = config.var.extraLocale; }; services = { xserver = { enable = true; xkb.layout = keyboardLayout; xkb.variant = ""; }; gnome.gnome-keyring.enable = true; }; console.keyMap = keyboardLayout; environment.variables = { XDG_DATA_HOME = "$HOME/.local/share"; PASSWORD_STORE_DIR = "$HOME/.local/share/password-store"; EDITOR = "nvim"; }; services.libinput.enable = true; programs.dconf.enable = true; services = { dbus.enable = true; gvfs.enable = true; upower.enable = true; power-profiles-daemon.enable = true; udisks2.enable = true; }; # Faster rebuilding documentation = { enable = true; doc.enable = false; man.enable = true; dev.enable = false; info.enable = false; nixos.enable = false; }; environment.systemPackages = with pkgs; [ hyprland-qtutils fd bc gcc git-ignore xdg-utils wget curl ]; services.logind.extraConfig = '' # don’t shutdown when power button is short-pressed HandlePowerKey=ignore ''; }