{ config, lib, pkgs, ... }: let flakeURL = "git+https://git.xenia.me.uk/xenia/nixos.git?ref=main"; in { nix = { settings = { experimental-features = [ "nix-command" "flakes" ]; auto-optimise-store = true; }; gc = { automatic = true; dates = "weekly"; options = "--delete-older-than 30d"; }; extraOptions = '' keep-outputs = true keep-derivations = true min-free = ${toString (100 * 1024 * 1024)} max-free = ${toString (1024 * 1024 * 1024)} ''; }; nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "steam" "steam-original" "steam-run" "nomachine-client" ]; networking = { networkmanager.enable = true; nameservers = [ "9.9.9.9" ]; }; environment = { systemPackages = with pkgs; [ libsecret git neofetch nitch dig silver-searcher gnumake mc ]; localBinInPath = true; shellAliases.rebuild = '' sudo nixos-rebuild switch --flake "${flakeURL}" --refresh \ && hyprctl reload \ && doom sync -p ''; }; console.keyMap = "uk"; programs.ssh.startAgent = true; services = { upower.enable = true; power-profiles-daemon.enable = true; }; virtualisation.podman.enable = true; time.timeZone = "Europe/London"; i18n = let locale = "en_GB.UTF-8"; in { # Select internationalisation properties. defaultLocale = locale; extraLocaleSettings = { LC_ADDRESS = locale; LC_IDENTIFICATION = locale; LC_MEASUREMENT = locale; LC_MONETARY = locale; LC_NAME = locale; LC_NUMERIC = locale; LC_PAPER = locale; LC_TELEPHONE = locale; LC_TIME = locale; }; }; system.autoUpgrade = { enable = true; dates = "02:00"; allowReboot = false; flake = flakeURL; }; }