{ config, lib, pkgs, ... }: let cfg = config.ptw.programs.gaming; in { options.ptw.programs.gaming = { enable = lib.mkEnableOption "Configure gaming options"; }; config = lib.mkIf cfg.enable { environment.systemPackages = with pkgs; [ # General wine wineWowPackages.staging winetricks protontricks # Lutris for League lutris-free-wrapped # prismlauncher-wrapped # retroarch for retro games (pkgs.callPackage ./wrapper.nix { inherit (pkgs) retroarch; cores = with pkgs.libretro; [ mgba mupen64plus melonds desmume dolphin pcsx2 ]; }) #steam-wrapped # Custom package # Gameplay clip recording (pkgs.wrapOBS { plugins = with pkgs.obs-studio-plugins; [ obs-vaapi obs-vkcapture obs-pipewire-audio-capture ]; }) obs-cli # Gameplay clip editing kdenlive # Performance corectrl ]; programs.gamescope = { enable = true; capSysNice = true; args = ["--rt"]; }; # security.wrappers.gamescope = { # owner = "alexander"; # group = "alexander"; # source = "${pkgs.gamescope}/bin/gamescope"; # capabilities = "CAP_SYS_NICE=eip"; # }; hardware.steam-hardware.enable = true; }; }