{ config, pkgs, lib, inputs, system, ... }: let cfg = config.sydnix.steam; in { options.sydnix.steam = { enable = lib.mkEnableOption "Steam"; }; config = lib.mkIf cfg.enable { programs.steam = { enable = true; remotePlay.openFirewall = true; dedicatedServer.openFirewall = true; gamescopeSession.enable = true; extraPackages = with pkgs; [ mono gtk3 gtk3-x11 libgdiplus zlib ]; }; programs.gamemode = { enable = true; enableRenice = true; }; # This fixes the "glXChooseVisual failed" bug, see: # https://github.com/NixOS/nixpkgs/issues/47932. hardware.graphics = { enable = true; enable32Bit = true; }; }; }