{ config, lib, pkgs, iosevkaCustom, ... }: { nix = { enable = true; settings = { cores = 0; max-jobs = "auto"; trusted-users = [ "root" ]; experimental-features = [ "nix-command" "flakes" ]; auto-optimise-store = true; }; channel.enable = true; gc = { automatic = true; options = "--delete-older-than 7d"; }; optimise.automatic = true; registry.my-nixos = { from = { type = "indirect"; id = "my-nixos"; }; to = { type = "git"; url = "https://git.xenia.me.uk/pixelifytica/nixos.git?ref=main"; }; }; extraOptions = '' keep-outputs = false keep-derivations = false min-free = ${toString (100 * 1024 * 1024)} max-free = ${toString (1024 * 1024 * 1024)} ''; }; nixpkgs.config.allowUnfree = true; system = { stateVersion = "23.05"; autoUpgrade = { enable = true; persistent = true; allowReboot = false; flake = "git+${config.nix.registry.my-nixos.to.url}"; dates = "02:00"; randomizedDelaySec = "15min"; flags = [ "--accept-flake-config" "--option" "extra-binary-caches" "https://nix.xenia.me.uk" ]; }; }; systemd.services = lib.mkIf config.system.autoUpgrade.enable { nixos-upgrade.serviceConfig = { CPUQuota = "75%"; CPUWeight = 20; IOWeight = 20; }; }; boot.loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; }; networking = { networkmanager.enable = true; firewall.enable = true; nameservers = [ "9.9.9.9" ]; }; users.users.root.openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINI1dWlS16Keil0MGPWmMsBzx8F9ylfz+fRwxUr8/tZ/ ion" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC4M1zV3yLMMI1tYwdY9QDXJDlOBugm7UXKC+Xk89yHq pixelifytica@Vanguard" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICPypUUGVAdpl0SHrUDVw0RureuFNsljrXQvrf0uc055 pixelifytica@Northstar" ]; environment = { pathsToLink = [ "/share/zsh" ]; sessionVariables = { XDG_CONFIG_HOME = "$HOME/.config"; XDG_CACHE_HOME = "$HOME/.cache"; XDG_DATA_HOME = "$HOME/.local/share"; XDG_STATE_HOME = "$HOME/.local/state"; }; systemPackages = with pkgs; [ coreutils-full gnumake git file zip unzip curl wget dig wireguard-tools quickemu ]; localBinInPath = true; }; programs = { command-not-found.enable = false; ssh.startAgent = true; nano = { enable = true; syntaxHighlight = true; nanorc = '' set nowrap set tabstospaces set tabsize 2 ''; }; }; services = { upower.enable = true; power-profiles-daemon.enable = true; system76-scheduler = { enable = true; useStockConfig = true; }; }; security.rtkit.enable = true; virtualisation.podman.enable = true; time.timeZone = "Europe/London"; i18n.defaultLocale = "en_GB.UTF-8"; console.useXkbConfig = true; fonts = { packages = [ iosevkaCustom.packages.iosevka-custom-nerdfont iosevkaCustom.packages.iosevka-custom-aile pkgs.emacs-all-the-icons-fonts # Emacs pkgs.weather-icons # Emacs pkgs.lmodern # LaTeX pkgs.noto-fonts-emoji # Emoji (pkgs.nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; }) ]; fontconfig = { enable = true; defaultFonts = with iosevkaCustom.names; { serif = [ iosevka-custom-aile ]; sansSerif = [ iosevka-custom-aile ]; monospace = [ iosevka-custom-nerdfont ]; emoji = [ "Noto Color Emoji" ]; }; }; }; }