# Common configuration options for client machines (i.e. not servers) { lib, inputs, pkgs, ... }: { imports = [ ./steam.nix ]; nixpkgs = { overlays = [ inputs.rust-overlay.overlays.default inputs.emacs-overlay.overlays.default (final: prev: { nur = import inputs.nur { nurpkgs = prev; pkgs = prev; repoOverrides = { sorre = import inputs.sorrepkgs { pkgs = prev; }; }; }; }) ]; config = { allowUnfree = true; packageOverrides = pkgs: { factorio = pkgs.factorio.override { username = "IHazPink"; token = "599e9c5aa6cdcd78be60cc9af5d9af"; }; }; }; }; # See https://github.com/NixOS/nixpkgs/issues/100288#issuecomment-709328701 # I don't care about man completions, and rebuilding the cache constantly is # very annoying documentation.man.generateCaches = lib.mkForce false; programs.hyprland.enable = true; services.gvfs.enable = true; services.udisks2.enable = true; boot.supportedFilesystems = [ "ntfs" "bcachefs" ]; nix.gc = { dates = "daily"; automatic = true; persistent = true; randomizedDelaySec = "15min"; options = ''--delete-older-than 7d''; }; networking = { useNetworkd = true; firewall = { enable = true; allowedTCPPorts = [ 80 443 34197 ]; }; }; services.mullvad-vpn.enable = true; services.tailscale.enable = true; virtualisation.podman = { enable = true; dockerCompat = true; dockerSocket.enable = true; autoPrune.enable = true; }; programs.gnupg.agent = { enable = true; enableSSHSupport = true; pinentryPackage = pkgs.pinentry-gnome3; settings = { default-cache-ttl = 1200; }; }; services.pipewire = { enable = true; alsa.enable = true; pulse.enable = true; }; fonts.packages = with pkgs; [ noto-fonts noto-fonts-cjk-sans noto-fonts-emoji proggyfonts (nerdfonts.override { fonts = [ "FiraCode" "CascadiaCode" ]; }) overpass inter ]; services.earlyoom = { enable = true; freeMemThreshold = 5; extraArgs = [ "--prefer '(^|/)(firefox|chromium|signal|electron)$'" ]; }; }