{ config, lib, pkgs, ... }: with lib; let cfg = config.options.trivium; in { options.trivium = { enable = mkEnableOption "steam settings"; compatibilityPackages = mkOption { type = types.bool; default = true; description = "Enable additional compatibility packages (protontricks, protonup, etc.)"; }; remotePlayOpenFirewall = mkOption { type = types.bool; default = false; description = "Open firewall for Steam Remote Play"; }; dedicatedServerOpenFirewall = mkOption { type = types.bool; default = false; description = "Open firewall for Steam Dedicated Server"; }; localNetworkGameTransfersOpenFirewall = mkOption { type = types.bool; default = false; description = "Open firewall for Steam Local Network Game Transfers"; }; }; config = mkIf cfg.enable { programs.steam = { enable = true; remotePlay.openFirewall = cfg.remotePlayOpenFirewall; dedicatedServer.openFirewall = cfg.dedicatedServerOpenFirewall; localNetworkGameTransfers.openFirewall = cfg.localNetworkGameTransfersOpenFirewall; }; environment = mkIf cfg.compatibilityPackages { systemPackages = with pkgs; [ protontricks protonup protonup-ng winetricks ]; }; }; }