# Common configuration options for client machines (i.e. not servers) { inputs, pkgs, ... }: { imports = [ ./steam.nix ]; nixpkgs = { overlays = [ inputs.rust-overlay.overlays.default (import ../overlay.nix) ]; config = { allowUnfree = true; packageOverrides = pkgs: { factorio = pkgs.factorio.override { username = "IHazPink"; token = "599e9c5aa6cdcd78be60cc9af5d9af"; }; }; }; }; programs.hyprland.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 noto-fonts-emoji proggyfonts (nerdfonts.override { fonts = [ "FiraCode" "CascadiaCode" ]; }) overpass inter ]; services.earlyoom = { enable = true; freeMemThreshold = 5; extraArgs = [ "--prefer '(^|/)(firefox|chromium|signal|bitwarden|electron)$'" ]; }; }