{ config, lib, pkgs, ... }: let cfg = config.orbekk.gaming; pkgs' = pkgs.unstable; in { options = { orbekk.gaming = { enable = lib.mkEnableOption "Enable steam with overrides"; }; }; config = lib.mkIf cfg.enable { nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "steam" "steamcmd" "steam-original" "steam-runtime" "minecraft-launcher" ]; services.flatpak.enable = true; programs.steam = { enable = true; remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server }; hardware.opengl.driSupport32Bit = true; # Enables support for 32bit libs that steam uses hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ libva ]; hardware.steam-hardware.enable = true; environment.systemPackages = with pkgs; [ wineWowPackages.staging steam steam.run obs-studio ]; }; }