{ lib, config, ... }: let inherit (lib) mkIf; cfg = config.gaming; in { config = mkIf cfg.steam { nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "steam" "steam-original" "steam-runtime" ]; programs.gamescope = { enable = true; capSysNice = true; }; programs.steam = { enable = true; remotePlay.openFirewall = true; dedicatedServer.openFirewall = true; localNetworkGameTransfers.openFirewall = true; gamescopeSession.enable = true; }; # controllers hardware.xone.enable = true; hardware.steam-hardware.enable = true; }; }