{ config, pkgs, lib, ... }:

{
  # - Nix ----------------------------------------

  nix = {
    package = pkgs.nixFlakes;

    extraOptions = lib.optionalString (config.nix.package == pkgs.nixFlakes)
      "experimental-features = nix-command flakes";

    gc = {
      automatic = true;
      dates = "weekly";
      options = "--delete-older-than 30d";
    };

  };

  # - Locale -------------------------------------

  time.timeZone = "Europe/Madrid";
  i18n.defaultLocale = "ca_ES.utf8";
  console.keyMap = "es";
  services.xserver = {
    layout = "es";
    xkbVariant = "cat";
  };

  # - Packages -----------------------------------

  environment.pathsToLink = [ "/libexec" ];
  environment.systemPackages = with pkgs; [
    curl
    git
    htop
    pciutils
    psmisc
    vim
  ];

  # - Other --------------------------------------

  networking.networkmanager.enable = true;
  networking.firewall.checkReversePath = "loose";  # See https://github.com/tailscale/tailscale/issues/4432 
  samfelag.modules.tailscale.enable = true;

  system.stateVersion = "22.05";

}
