{ pkgs, config, lib, inputs, ... }: let cfg = config.my.desktop.gaming; inherit (inputs) nix-gaming; in { imports = with nix-gaming.nixosModules; [ pipewireLowLatency platformOptimizations ]; options.my.desktop.gaming = { enable = lib.mkEnableOption null; }; config = lib.mkIf cfg.enable { programs = { steam = { enable = true; package = pkgs.steam.override { extraEnv = { MANGOHUD = true; OBS_VKCAPTURE = true; }; extraPkgs = pkgs: with pkgs; [ zstd openssl ]; }; extraCompatPackages = with pkgs; [ proton-ge-bin ]; remotePlay.openFirewall = true; platformOptimizations.enable = true; }; gamemode = { enable = true; settings = { general = { renice = 10; }; }; }; }; services.pipewire.lowLatency.enable = true; environment.systemPackages = [ nix-gaming.packages.${pkgs.stdenv.system}.umu-launcher ]; }; }