{pkgs, ...}: { 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 = "git+https://git.xenia.me.uk/xenia/nixos.git?ref=main"; }; networking.networkmanager.enable = true; services.power-profiles-daemon.enable = true; virtualisation.podman.enable = true; programs = { ssh.startAgent = true; dconf.enable = true; fish.enable = true; zsh.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" "JetBrainsMono"];}) ]; # 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 = ["JetBrainsMono Nerd Font" "Noto Color Emoji"]; emoji = ["Noto Color Emoji"]; }; }; }; environment = { localBinInPath = true; shellAliases = { ll = "ls -laF"; lg = "lazygit"; gg = "nvim +Neogit"; }; }; services.xserver = { layout = "gb"; xkbVariant = ""; }; console.keyMap = "uk"; # Set your time zone. time.timeZone = "Europe/London"; # Select internationalisation properties. i18n.defaultLocale = "en_GB.UTF-8"; i18n.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"; }; # Enable sound with pipewire. sound.enable = true; hardware.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; programs.noisetorch.enable = true; }