nixos-config/nixos/system/packages/steam.nix

39 lines
1.2 KiB
Nix

{
lib,
config,
pkgs,
userSettings,
...
}: {
options = {
program.steam.enable = lib.mkEnableOption "Enable Steam module";
program.steam-tui.enable = lib.mkEnableOption "Enable Steam TUI";
sys.desktop.steamdeck.enable = lib.mkEnableOption "Enable Steam desktop integration";
};
config = lib.mkMerge [
(lib.mkIf config.program.steam.enable {
programs.steam = {
enable = true;
gamescopeSession.enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
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
};
})
(lib.mkIf config.sys.desktop.steamdeck.enable {
services.getty.autologinUser = "${userSettings.username}";
environment = {
systemPackages = [pkgs.mangohud];
loginShellInit = ''
[[ "$(tty)" = "/dev/tty1" ]] && gs
'';
};
})
(lib.mkIf config.program.steam-tui.enable {
environment.systemPackages = with pkgs; [steam-tui steamcmd];
})
];
}