From 84cc6b4839a23e4ba0e748283f03b224f47b07bd Mon Sep 17 00:00:00 2001 From: Infinidoge Date: Tue, 7 Dec 2021 10:48:31 -0500 Subject: [PATCH] desktop/gaming: add gaming module --- hosts/Infini-DESKTOP/default.nix | 4 +-- modules/modules/desktop/gaming.nix | 47 ++++++++++++++++++++++++++++++ users/infinidoge/default.nix | 1 - users/profiles/gaming/default.nix | 7 ----- 4 files changed, 49 insertions(+), 10 deletions(-) create mode 100644 modules/modules/desktop/gaming.nix delete mode 100644 users/profiles/gaming/default.nix diff --git a/hosts/Infini-DESKTOP/default.nix b/hosts/Infini-DESKTOP/default.nix index 7ef7956..e00260e 100644 --- a/hosts/Infini-DESKTOP/default.nix +++ b/hosts/Infini-DESKTOP/default.nix @@ -37,8 +37,8 @@ enable = true; btrfs.enable = true; }; - software = { - steam.enable = true; + desktop = { + gaming.enableAll = true; }; }; diff --git a/modules/modules/desktop/gaming.nix b/modules/modules/desktop/gaming.nix new file mode 100644 index 0000000..596aa08 --- /dev/null +++ b/modules/modules/desktop/gaming.nix @@ -0,0 +1,47 @@ +{ config, options, lib, pkgs, ... }: +with lib; +with lib.hlissner; +let + cfg = config.modules.desktop.gaming; + opt = options.modules.desktop.gaming; +in +{ + options.modules.desktop.gaming = with types; { + enableAll = mkBoolOpt false; + steam = { + enable = mkBoolOpt false; + package = mkOpt package pkgs.steam; + }; + multimc = { + enable = mkBoolOpt false; + msaClientID = mkOpt str "01524508-0110-46fc-b468-362d31ca41e6"; + package = mkOpt package pkgs.multimc; + }; + lutris = { + enable = mkBoolOpt false; + packages = mkOpt package pkgs.lutris; + }; + }; + + config = mkMerge [ + { + home.home.packages = with pkgs; [ + (mkIf cfg.multimc.enable (cfg.multimc.package.override { msaClientID = cfg.multimc.msaClientID; })) + (mkIf cfg.lutris.enable cfg.lutris.packages) + ]; + + modules.software.steam = { + enable = mkAliasDefinitions opt.steam.enable; + package = mkAliasDefinitions opt.steam.package; + }; + } + + (mkIf cfg.enableAll { + modules.desktop.gaming = { + steam.enable = true; + multimc.enable = true; + lutris.enable = true; + }; + }) + ]; +} diff --git a/users/infinidoge/default.nix b/users/infinidoge/default.nix index 5a519b5..03d9ef4 100644 --- a/users/infinidoge/default.nix +++ b/users/infinidoge/default.nix @@ -24,7 +24,6 @@ in (ifGraphical [ discord - gaming ]) ]) diff --git a/users/profiles/gaming/default.nix b/users/profiles/gaming/default.nix deleted file mode 100644 index 2f6baca..0000000 --- a/users/profiles/gaming/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - wineWowPackages.stable - (multimc.override { msaClientID = "01524508-0110-46fc-b468-362d31ca41e6"; }) - lutris - ]; -}