2025-07-05 00:02:39 +02:00
|
|
|
{
|
|
|
|
|
pkgs,
|
|
|
|
|
lib,
|
|
|
|
|
config,
|
|
|
|
|
...
|
|
|
|
|
}:
|
|
|
|
|
with lib; let
|
2025-08-15 21:33:22 +02:00
|
|
|
cfg = config.mySystem.programs.steam;
|
2025-07-05 00:02:39 +02:00
|
|
|
in {
|
2025-08-15 21:33:22 +02:00
|
|
|
options.mySystem.programs.steam.enable = mkEnableOption "Enables Steam and Steam hardware";
|
2025-07-05 00:02:39 +02:00
|
|
|
config = mkIf cfg.enable {
|
|
|
|
|
programs = {
|
|
|
|
|
steam = {
|
|
|
|
|
inherit (cfg) enable;
|
|
|
|
|
protontricks.enable = true;
|
|
|
|
|
remotePlay.openFirewall = true;
|
|
|
|
|
localNetworkGameTransfers.openFirewall = true;
|
|
|
|
|
gamescopeSession.enable = true;
|
|
|
|
|
extraCompatPackages = [pkgs.proton-ge-bin];
|
2025-11-16 15:29:21 +01:00
|
|
|
package = pkgs.steam.override {
|
|
|
|
|
extraEnv = {
|
|
|
|
|
MANGOHUD = true;
|
|
|
|
|
OBS_VKCAPTURE = true;
|
|
|
|
|
RADV_TEX_ANISO = 16;
|
|
|
|
|
};
|
|
|
|
|
extraLibraries = p: with p; [atk];
|
|
|
|
|
extraPkgs = pkgs:
|
|
|
|
|
with pkgs; [
|
|
|
|
|
qt5.qtmultimedia
|
|
|
|
|
qt5.qtbase
|
|
|
|
|
libpulseaudio
|
|
|
|
|
];
|
|
|
|
|
};
|
2025-07-05 00:02:39 +02:00
|
|
|
};
|
|
|
|
|
gamescope = {
|
|
|
|
|
enable = true;
|
|
|
|
|
capSysNice = true;
|
|
|
|
|
args = [
|
|
|
|
|
"--rt"
|
|
|
|
|
"--expose-wayland"
|
|
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
hardware.steam-hardware = {
|
|
|
|
|
inherit (cfg) enable;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|