diff --git a/hosts/comfy-station/configuration.nix b/hosts/comfy-station/configuration.nix index 6ec159a..61fa233 100644 --- a/hosts/comfy-station/configuration.nix +++ b/hosts/comfy-station/configuration.nix @@ -40,6 +40,8 @@ hive.yubikey.enable = true; hive.wg.client.enable = true; hive.wg.client.privateKeyFile = config.sops.secrets.wg-priv.path; + hive.programs.games.enable = true; + hive.programs.games.steam = true; # system packages environment.systemPackages = with pkgs; [ @@ -61,7 +63,6 @@ insomnia krita libreoffice - lutris mosquitto mpv mupdf @@ -85,7 +86,6 @@ nixpkgs.config.permittedInsecurePackages = [ "electron-25.9.0" # required by obsidian ]; - programs.steam.enable = true; services.udev.packages = [pkgs.openhantek6022]; virtualisation.docker.enable = true; diff --git a/hosts/monolith/configuration.nix b/hosts/monolith/configuration.nix index ecbb731..b88ddee 100644 --- a/hosts/monolith/configuration.nix +++ b/hosts/monolith/configuration.nix @@ -60,12 +60,6 @@ kdenlive krita libreoffice - (lutris.override { - extraPkgs = pkgs: [ - pkgs.libnghttp2 - pkgs.winetricks - ]; - }) mosquitto mpv mupdf @@ -77,22 +71,18 @@ qalculate-qt qtpass ranger - r2modman sops spotify vim vlc vscode wget - wine - winetricks zoom zotero ]; nixpkgs.config.permittedInsecurePackages = [ "electron-25.9.0" # required by obsidian ]; - programs.steam.enable = true; services.udev.packages = [pkgs.openhantek6022]; virtualisation.docker.enable = true; diff --git a/modules/default.nix b/modules/default.nix index 0f15114..7cd83c4 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -22,6 +22,7 @@ ./hardware/sound.nix ./hardware/yubikey.nix ./networking/wireguard + ./programs/games.nix ./services/borg-server.nix ./services/nextcloud-instance.nix ./services/virt-manager.nix diff --git a/modules/programs/games.nix b/modules/programs/games.nix new file mode 100644 index 0000000..1dc5b08 --- /dev/null +++ b/modules/programs/games.nix @@ -0,0 +1,61 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.hive.programs.games; +in { + options.hive.programs.games = { + enable = lib.mkEnableOption "Enable the games module"; + steam = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Enable Steam support. + ''; + }; + lutris = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Enable Lutris support. + ''; + }; + r2modman = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Enable R2ModMan support. + ''; + }; + wine = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Enable Wine support. + ''; + }; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = + lib.optional cfg.lutris + (pkgs.lutris.override { + extraPkgs = pkgs: [ + pkgs.libnghttp2 + pkgs.winetricks + ]; + }) + ++ lib.optional cfg.r2modman pkgs.r2modman + ++ lib.optionals cfg.wine [ + pkgs.wine + pkgs.winetricks + ]; + + programs.steam = lib.mkIf cfg.steam { + enable = true; + gamescopeSession.enable = true; + }; + }; +}