{ self, config, lib, pkgs, ... }: let inherit (lib) fileContents; in { # Cachix nix = { binaryCaches = [ "https://cache.nixos.org/" "https://nix-community.cachix.org" ]; binaryCachePublicKeys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ]; }; # 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; nix.registry.pwnix.flake = self.inputs.pwnix; # Fix zsh autocompletion with home-manager environment.pathsToLink = [ "/share/zsh" ]; # We set this via home-manager environment.variables.EDITOR = "$EDITOR"; 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 mosh 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 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"; }