{ self, config, lib, pkgs, ... }: let inherit (lib) fileContents; in { # For rage encryption, all hosts need a ssh key pair services.openssh = { enable = true; openFirewall = lib.mkDefault false; }; # This is just a representation of the nix default nix.systemFeatures = [ "nixos-test" "benchmark" "big-parallel" "kvm" ]; nix.registry.nixpkgs.flake = self.inputs.nixos; nix.registry.latest.flake = self.inputs.latest; # Fix zsh autocompletion with home-manager environment.pathsToLink = [ "/share/zsh" ]; services.logind.lidSwitch = "ignore"; services.logind.extraConfig = '' # don’t shutdown when power button is short-pressed HandlePowerKey=ignore ''; environment = { systemPackages = with pkgs; [ agenix binutils coreutils psmisc asciinema curl direnv exa dnsutils dosfstools fd fzf git bat neovim bottom gptfdisk file iputils jq manix moreutils yt-dlp nix-index tmux nmap ripgrep skim tealdeer whois p7zip wget xxd imagemagick nushell nixpkgs-fmt nvfetcher libqalculate ]; }; fonts = { fonts = with pkgs; [ powerline-fonts dejavu_fonts twitter-color-emoji ]; fontconfig.defaultFonts = { monospace = [ "DejaVu Sans Mono for Powerline" ]; sansSerif = [ "DejaVu Sans" ]; emoji = [ "Twitter Color Emoji" ]; }; }; nix = { # Improve nix store disk usage autoOptimiseStore = true; gc.automatic = true; optimise.automatic = true; # Prevents impurities in builds useSandbox = true; # give root and @wheel special privileges with nix allowedUsers = [ "@wheel" ]; trustedUsers = [ "root" "@wheel" ]; # Generally useful nix option defaults extraOptions = '' keep-outputs = true keep-derivations = true fallback = true ''; }; time.timeZone = "Europe/Warsaw"; i18n.defaultLocale = "en_US.UTF-8"; # Service that makes Out of Memory Killer more effective services.earlyoom.enable = true; users.mutableUsers = false; console.keyMap = "pl"; }