diff --git a/configurations/london/default.nix b/configurations/london/default.nix index 4bf119e..a0dc23c 100644 --- a/configurations/london/default.nix +++ b/configurations/london/default.nix @@ -93,6 +93,7 @@ my.development.tools.embedded.enable = true; my.development.tools.networking.enable = true; my.games.wine.enable = true; + my.games.steam.enable = true; }; }; }; diff --git a/modules/workstation/desktop.nix b/modules/workstation/desktop.nix index be0dfef..364e8de 100644 --- a/modules/workstation/desktop.nix +++ b/modules/workstation/desktop.nix @@ -14,6 +14,13 @@ let ) else false; + anySteamUser = + if machineProps.enableHomeManager then + builtins.any (user: config.home-manager.users.${user}.my.games.steam.enable) ( + builtins.attrNames config.my.users + ) + else + false; in { programs.sway = mkIf anySwayUser { @@ -21,6 +28,8 @@ in wrapperFeatures.gtk = true; }; + programs.steam.enable = anySteamUser; + xdg.portal = mkIf anySwayUser { enable = true; xdgOpenUsePortal = true; diff --git a/modules/workstation/home-manager/games.nix b/modules/workstation/home-manager/games.nix index 0806823..8c8fa74 100644 --- a/modules/workstation/home-manager/games.nix +++ b/modules/workstation/home-manager/games.nix @@ -6,9 +6,16 @@ }: with lib; { - options.my.games.wine.enable = mkOption { - type = types.bool; - default = false; + options.my.games = { + wine.enable = mkOption { + type = types.bool; + default = false; + }; + + steam.enable = mkOption { + type = types.bool; + default = false; + }; }; config = mkIf config.my.games.wine.enable { home.packages = with pkgs; [ wine ]; };