{ config, lib, pkgs, username, ... }: let cfg = config.szpont.sys.srv.gaming; in { options.szpont.sys.srv.gaming = { enable = lib.mkEnableOption "enables gaming stuff"; steam.enable = lib.mkEnableOption "enables steam stuff"; vr.enable = lib.mkEnableOption "enables vr support"; }; config = lib.mkMerge [ (lib.mkIf cfg.enable { home-manager.users.${username}.szpont.hm.soft.gaming.enable = true; programs.gamescope.enable = true; programs.gamemode = { enable = true; enableRenice = true; }; environment.systemPackages = with pkgs; [ heroic prismlauncher ]; }) (lib.mkIf cfg.steam.enable { programs.steam = { enable = true; localNetworkGameTransfers.openFirewall = true; dedicatedServer.openFirewall = true; remotePlay.openFirewall = false; extest.enable = true; protontricks.enable = true; extraCompatPackages = with pkgs; [ proton-ge-custom ]; }; }) (lib.mkIf cfg.vr.enable { programs.alvr = { enable = true; openFirewall = true; }; }) ]; }