{ config, lib, pkgs, inputs, ...}:
let
  cfg = config.nixfiles.packageSets.gaming;
in
{
  # oopsies this is for home-manager
  # programs.mangohud.enable = lib.mkDefault true;

  options.nixfiles.packageSets.gaming = {
    enable = lib.mkEnableOption "gaming package set";
  };
  config = lib.mkIf cfg.enable {

    nixpkgs.overlays = let
      steamGamescopeFix = (final: prev: {
        steam = prev.steam.override {
          extraPkgs = pkgs: with pkgs; [
            xorg.libXcursor
            xorg.libXi
            xorg.libXinerama
            xorg.libXScrnSaver
            libpng
            libpulseaudio
            libvorbis
            stdenv.cc.cc.lib
            libkrb5
            keyutils
          ];
        };
      });
    in [ steamGamescopeFix ];

    programs.steam = {
      enable = lib.mkDefault true;
      gamescopeSession = {
        enable = lib.mkDefault true;
      };
    };

    programs.gamemode = {
      enable = lib.mkDefault true;
      enableRenice = lib.mkDefault true;
    };

    programs.gamescope = {
      enable = lib.mkDefault true;
      capSysNice = lib.mkDefault false;
    };

    virtualisation.waydroid.enable = lib.mkDefault true;

    environment.systemPackages = with pkgs; [
      protontricks
      mangohud
      goverlay
      prismlauncher
      glxinfo
      vulkan-tools
      legendary-gl
      heroic
      protonup-ng
      protonup-qt
    ];
  };
}