small module improvements + sunshine module

This commit is contained in:
xunuwu 2024-09-08 11:00:35 +02:00
parent 543c890c9e
commit d983b9ad92
Signed by: xun
SSH key fingerprint: SHA256:Uot/1WoAjWAeqLOHA5vYy4phhVydsH7jCPmBjaPZfgI
3 changed files with 49 additions and 23 deletions

View file

@ -54,8 +54,8 @@
../../programs/media/jellyfin.nix ../../programs/media/jellyfin.nix
# gaming # gaming
../../programs/games ../../programs/games
../../programs/games/roblox.nix # ../../programs/games/roblox.nix
../../programs/games/krunker.nix # ../../programs/games/krunker.nix
#../../programs/games/ludusavi.nix #../../programs/games/ludusavi.nix
# media services # media services
@ -64,29 +64,34 @@
../../services/system/polkit-agent.nix ../../services/system/polkit-agent.nix
../../services/system/udiskie.nix # although i dont need this for usb memory, it is quite convenient for flashing qmk ../../services/system/udiskie.nix # although i dont need this for usb memory, it is quite convenient for flashing qmk
]; ];
xun = { xun = let
enabled = {enable = true;};
in {
small-nvim = { small-nvim = {
enable = true; enable = true;
colorscheme = { colorscheme = {
name = "carbonfox"; name = "carbonfox";
package = "EdenEast/nightfox.nvim"; package = "EdenEast/nightfox.nvim";
}; };
wakatime.enable = true; wakatime = enabled;
}; };
desktop.xdg.enable = true; desktop.xdg = enabled;
programs.terminal = { programs.terminal = {
shell.zsh.enable = true; shell.zsh = enabled;
direnv.enable = true; direnv = enabled;
comma.enable = true; comma = enabled;
tmux.enable = true; tmux = enabled;
irssi.enable = true; irssi = enabled;
}; };
develop = { develop = {
enable = true; enable = true;
docs.enable = true; docs = enabled;
lsp = { lsp = {
c.enable = true; c = enabled;
}; };
}; };
gaming = {
roblox.sobercookie = enabled;
};
}; };
} }

View file

@ -2,10 +2,16 @@
imports = [ imports = [
self.nixosModules.xun self.nixosModules.xun
]; ];
xun.gaming = { xun.gaming = let
enabled = {enable = true;};
in {
enable = true; enable = true;
steam.enable = true; steam = enabled;
gamescope.enable = true; gamescope = enabled;
gamemode.enable = true; gamemode = enabled;
sunshine = {
enable = true;
openFirewall = true;
};
}; };
} }

View file

@ -6,21 +6,35 @@
}: let }: let
cfg = config.xun.gaming; cfg = config.xun.gaming;
in { in {
options.xun.gaming = { options.xun.gaming = let
mkBool = lib.mkOption {type = lib.types.bool;};
in {
enable = lib.mkEnableOption "gaming"; enable = lib.mkEnableOption "gaming";
steam.enable = lib.mkEnableOption "steam"; steam.enable = lib.mkEnableOption "steam";
gamemode.enable = lib.mkEnableOption "gamemode"; gamemode.enable = lib.mkEnableOption "gamemode";
gamescope.enable = lib.mkEnableOption "gamescope"; gamescope.enable = lib.mkEnableOption "gamescope";
sunshine = {
enable = lib.mkEnableOption "sunshine";
openFirewall = mkBool;
};
}; };
config = lib.mkIf cfg.enable ({ config = lib.mkIf cfg.enable (lib.mkMerge [
programs.gamescope = lib.mkIf cfg.gamescope.enable { (lib.mkIf cfg.gamescope.enable {
programs.gamescope = {
enable = true; enable = true;
capSysNice = false; # doesnt work with steam & heroic capSysNice = false; # doesnt work with steam & heroic
}; };
programs.gamemode.enable = cfg.gamemode.enable; })
} (lib.mkIf cfg.sunshine.enable {
// lib.mkIf cfg.steam.enable { services.sunshine = {
enable = true;
capSysAdmin = true;
openFirewall = cfg.sunshine.openFirewall;
};
})
(lib.mkIf cfg.gamemode.enable {programs.gamemode.enable = true;})
(lib.mkIf cfg.steam.enable {
# TODO: protontricks & steamtinkerlaunch # TODO: protontricks & steamtinkerlaunch
programs.steam = { programs.steam = {
enable = true; enable = true;
@ -43,5 +57,6 @@ in {
keyutils keyutils
]; ];
}; };
}); })
]);
} }