{
  config,
  lib,
  pkgs,
  ...
}:
let
  inherit (lib.modules) mkIf;
  inherit (lib.options) mkEnableOption;

  cfg = config.core.gaming;
in
{

  options.core.gaming = {
    enable = mkEnableOption "Config and Utils for gaming";
  };
  config = mkIf cfg.enable {
    environment = {
      systemPackages = with pkgs; [
        scanmem
        protonup-qt
        wine
        winetricks
        vesktop
        streamcontroller
      ];
    };

    programs = {
      steam = {
        enable = true;
        remotePlay.openFirewall = lib.mkDefault true;
        localNetworkGameTransfers.openFirewall = lib.mkDefault true;
        extest.enable = lib.mkDefault true;
        protontricks.enable = lib.mkDefault true;
      };
      gamemode.enable = true;
    };
  };
}
