{ lib, pkgs, iosevkaCustom, ... }: { nix = { enable = true; package = pkgs.nixVersions.unstable; settings = { cores = 0; max-jobs = "auto"; trusted-users = ["root"]; experimental-features = ["nix-command" "flakes"]; auto-optimise-store = true; }; channel.enable = true; nixPath = ["nixpkgs=${pkgs.path}"]; gc = { automatic = true; options = "--delete-older-than 7d"; }; optimise.automatic = true; extraOptions = '' keep-outputs = false keep-derivations = false min-free = ${toString (100 * 1024 * 1024)} max-free = ${toString (1024 * 1024 * 1024)} ''; }; nixpkgs.config.allowUnfree = true; system = { autoUpgrade = { enable = true; flake = "git+https://git.xenia.me.uk/pixelifytica/nixos.git?ref=main"; allowReboot = lib.mkDefault false; }; stateVersion = "23.05"; }; 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 = { 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; [ libsecret coreutils gnumake git zip unzip rclone wireguard-tools dogdns du-dust neofetch bottom nix-output-monitor nil ]; localBinInPath = true; }; console.keyMap = "uk"; programs = { command-not-found.enable = false; ssh.startAgent = true; nano = { enable = true; syntaxHighlight = true; nanorc = '' set nowrap set tabstospaces set tabsize 2 ''; }; }; services = { passSecretService.enable = true; upower.enable = true; power-profiles-daemon.enable = true; system76-scheduler = { enable = true; useStockConfig = 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; }; }; fonts = { packages = with pkgs; with iosevkaCustom.packages; [ iosevka-custom-nerdfont iosevka-custom-aile (nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];}) # Status bar emacs-all-the-icons-fonts # Emacs weather-icons # Emacs lmodern # LaTeX noto-fonts-emoji # Emoji ]; fontconfig = { enable = true; defaultFonts = with iosevkaCustom.names; { serif = [iosevka-custom-aile]; sansSerif = [iosevka-custom-aile]; monospace = [iosevka-custom-nerdfont]; emoji = ["Noto Color Emoji"]; }; }; }; }