{ lib, config, pkgs, ... }: let cfg = config.gaming; in { options.gaming.enable = lib.mkEnableOption "gaming"; config = lib.mkIf cfg.enable { nixpkgs.allowedUnfree = [ "steam" "steam-unwrapped" "lutris" ]; hardware.graphics = { enable32Bit = true; extraPackages = with pkgs; [ dxvk vkd3d-proton ]; }; programs.steam = { enable = true; remotePlay.openFirewall = false; dedicatedServer.openFirewall = false; }; programs.gamemode.enable = true; environment.systemPackages = with pkgs; [ mangohud ]; security.pam.loginLimits = [ { domain = config.host.username; type = "hard"; item = "nofile"; value = "524288"; } ]; }; }