{ pkgs, shell, ... }: let flakeURL = "git+https://git.xenia.me.uk/xenia/nixos.git?ref=main"; in { nix = { settings.experimental-features = ["nix-command" "flakes"]; gc = { automatic = true; dates = "daily"; options = "--delete-older-than 7d"; }; extraOptions = '' keep-outputs = true keep-derivations = true ''; }; system.autoUpgrade = { enable = true; flake = flakeURL; }; environment = { localBinInPath = true; shellAliases = { ll = "ls -laF"; nosu = "sudo nixos-rebuild switch --flake \"${flakeURL}\""; hms = "${pkgs.home-manager}/bin/home-manager switch --flake \"${flakeURL}\""; }; systemPackages = with pkgs; [distrobox]; }; networking.networkmanager.enable = true; services.power-profiles-daemon.enable = true; virtualisation.podman.enable = true; programs = { ${shell}.enable = true; ssh.startAgent = true; dconf.enable = true; }; fonts = { fonts = with pkgs; [ # icon fonts material-symbols # normal fonts jost lexend noto-fonts noto-fonts-cjk noto-fonts-emoji roboto # nerdfonts (nerdfonts.override {fonts = ["FiraCode"];}) ]; # use fonts specified by user rather than default ones enableDefaultFonts = false; fontconfig = { enable = true; # user defined fonts # the reason there's Noto Color Emoji everywhere is to override DejaVu's # B&W emojis that would sometimes show instead of some Color emojis defaultFonts = { serif = ["Noto Serif" "Noto Color Emoji"]; sansSerif = ["Noto Sans" "Noto Color Emoji"]; monospace = ["FiraCode Nerd Font" "Noto Color Emoji"]; emoji = ["Noto Color Emoji"]; }; }; }; services.xserver = { layout = "gb"; xkbVariant = ""; }; console.keyMap = "uk"; # Set your time zone. time.timeZone = "Europe/London"; i18n = { # Select internationalisation properties. defaultLocale = "en_GB.UTF-8"; extraLocaleSettings = { LC_ADDRESS = "en_GB.UTF-8"; LC_IDENTIFICATION = "en_GB.UTF-8"; LC_MEASUREMENT = "en_GB.UTF-8"; LC_MONETARY = "en_GB.UTF-8"; LC_NAME = "en_GB.UTF-8"; LC_NUMERIC = "en_GB.UTF-8"; LC_PAPER = "en_GB.UTF-8"; LC_TELEPHONE = "en_GB.UTF-8"; LC_TIME = "en_GB.UTF-8"; }; }; }