diff --git a/home/profiles/nixdesk/default.nix b/home/profiles/nixdesk/default.nix index a779622..4471ace 100644 --- a/home/profiles/nixdesk/default.nix +++ b/home/profiles/nixdesk/default.nix @@ -54,8 +54,8 @@ ../../programs/media/jellyfin.nix # gaming ../../programs/games - ../../programs/games/roblox.nix - ../../programs/games/krunker.nix + # ../../programs/games/roblox.nix + # ../../programs/games/krunker.nix #../../programs/games/ludusavi.nix # media services @@ -64,29 +64,34 @@ ../../services/system/polkit-agent.nix ../../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 = { enable = true; colorscheme = { name = "carbonfox"; package = "EdenEast/nightfox.nvim"; }; - wakatime.enable = true; + wakatime = enabled; }; - desktop.xdg.enable = true; + desktop.xdg = enabled; programs.terminal = { - shell.zsh.enable = true; - direnv.enable = true; - comma.enable = true; - tmux.enable = true; - irssi.enable = true; + shell.zsh = enabled; + direnv = enabled; + comma = enabled; + tmux = enabled; + irssi = enabled; }; develop = { enable = true; - docs.enable = true; + docs = enabled; lsp = { - c.enable = true; + c = enabled; }; }; + gaming = { + roblox.sobercookie = enabled; + }; }; } diff --git a/hosts/nixdesk/testing.nix b/hosts/nixdesk/testing.nix index c17c066..0c0c558 100644 --- a/hosts/nixdesk/testing.nix +++ b/hosts/nixdesk/testing.nix @@ -2,10 +2,16 @@ imports = [ self.nixosModules.xun ]; - xun.gaming = { + xun.gaming = let + enabled = {enable = true;}; + in { enable = true; - steam.enable = true; - gamescope.enable = true; - gamemode.enable = true; + steam = enabled; + gamescope = enabled; + gamemode = enabled; + sunshine = { + enable = true; + openFirewall = true; + }; }; } diff --git a/modules/xun/gaming/default.nix b/modules/xun/gaming/default.nix index 3e81497..62a3687 100644 --- a/modules/xun/gaming/default.nix +++ b/modules/xun/gaming/default.nix @@ -6,21 +6,35 @@ }: let cfg = config.xun.gaming; in { - options.xun.gaming = { + options.xun.gaming = let + mkBool = lib.mkOption {type = lib.types.bool;}; + in { enable = lib.mkEnableOption "gaming"; steam.enable = lib.mkEnableOption "steam"; gamemode.enable = lib.mkEnableOption "gamemode"; gamescope.enable = lib.mkEnableOption "gamescope"; + sunshine = { + enable = lib.mkEnableOption "sunshine"; + openFirewall = mkBool; + }; }; - config = lib.mkIf cfg.enable ({ - programs.gamescope = lib.mkIf cfg.gamescope.enable { + config = lib.mkIf cfg.enable (lib.mkMerge [ + (lib.mkIf cfg.gamescope.enable { + programs.gamescope = { enable = true; capSysNice = false; # doesnt work with steam & heroic }; - programs.gamemode.enable = cfg.gamemode.enable; - } - // lib.mkIf cfg.steam.enable { + }) + (lib.mkIf cfg.sunshine.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 programs.steam = { enable = true; @@ -43,5 +57,6 @@ in { keyutils ]; }; - }); + }) + ]); }