52 lines
1.2 KiB
Nix
52 lines
1.2 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
inputs,
|
|
...
|
|
}:
|
|
let
|
|
moduleName = "gaming";
|
|
cfg = config."${moduleName}";
|
|
in
|
|
{
|
|
imports = [
|
|
inputs.nix-gaming.nixosModules.platformOptimizations
|
|
];
|
|
|
|
options = {
|
|
"${moduleName}" = {
|
|
steam = {
|
|
enable = lib.mkEnableOption "Enable Steam.";
|
|
};
|
|
};
|
|
};
|
|
|
|
config = lib.mkMerge [
|
|
(lib.mkIf cfg.steam.enable {
|
|
programs = {
|
|
steam = {
|
|
enable = true;
|
|
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
|
protontricks.enable = true;
|
|
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
|
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
|
gamescopeSession.enable = true;
|
|
extraCompatPackages = with pkgs; [ proton-ge-bin ];
|
|
platformOptimizations.enable = true;
|
|
};
|
|
gamescope = {
|
|
enable = true;
|
|
capSysNice = true;
|
|
};
|
|
gamemode.enable = true;
|
|
};
|
|
environment.systemPackages = with pkgs; [
|
|
steam-run
|
|
wineWowPackages.stable
|
|
wine64
|
|
wineWowPackages.waylandFull
|
|
];
|
|
})
|
|
];
|
|
}
|