diff --git a/hosts/voyager/default.nix b/hosts/voyager/default.nix index 1702653..f46c610 100644 --- a/hosts/voyager/default.nix +++ b/hosts/voyager/default.nix @@ -64,9 +64,13 @@ ".config/WebCord" ".local/share/Smart Code ltd/Stremio" ".config/obs-studio" - ".local/share/PrismLauncher" ".config/VirtualBox" - ".local/share/VirtulBox VMs" + ".local/share/VirtualBox VMs" + + # Games + ".local/share/PrismLauncher" + ".local/share/Steam" + #".steam" # Tools ".ssh" @@ -221,6 +225,7 @@ python.enable = true; }; games = { + steam.enable = true; prismlauncher.enable = true; }; }; diff --git a/options/home/programs/default.nix b/options/home/programs/default.nix index 1f637ce..4490585 100644 --- a/options/home/programs/default.nix +++ b/options/home/programs/default.nix @@ -64,6 +64,7 @@ in }; games = { + steam.enable = mkEnableOption "Steam client"; prismlauncher.enable = mkEnableOption "PrismLauncher"; }; }; diff --git a/system/roles/workstation/programs/default.nix b/system/roles/workstation/programs/default.nix index 10f2500..fc41a58 100644 --- a/system/roles/workstation/programs/default.nix +++ b/system/roles/workstation/programs/default.nix @@ -3,5 +3,7 @@ ./misc.nix ./physlock.nix ./thunar.nix + ./virtualbox.nix + ./steam.nix ]; } diff --git a/system/roles/workstation/programs/steam.nix b/system/roles/workstation/programs/steam.nix new file mode 100644 index 0000000..02843ff --- /dev/null +++ b/system/roles/workstation/programs/steam.nix @@ -0,0 +1,19 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf; + cfg = config.myOptions.home-manager.programs.games.steam; + deviceType = config.myOptions.device.roles.type; + acceptedTypes = ["laptop" "desktop"]; +in { + config = mkIf ((builtins.elem deviceType acceptedTypes) && cfg.enable) { + programs.steam = { + enable = true; + remotePlay.openFirewall = false; + dedicatedServer.openFirewall = false; + }; + }; +} + diff --git a/system/roles/workstation/programs/virtualbox.nix b/system/roles/workstation/programs/virtualbox.nix new file mode 100644 index 0000000..a890e84 --- /dev/null +++ b/system/roles/workstation/programs/virtualbox.nix @@ -0,0 +1,23 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf; + cfgUser = config.myOptions.system.username; + cfg = config.myOptions.home-manager.programs.applications.virtualbox; + deviceType = config.myOptions.device.roles.type; + acceptedTypes = ["laptop" "desktop"]; +in { + config = mkIf ((builtins.elem deviceType acceptedTypes) && cfg.enable) { + virtualisation.virtualbox.host = { + enable = true; + + # Don't include the Qt dependency and GUI app, + # if gui is desired, it can be installed separately on a per-user basis + headless = true; + }; + + users.extraGroups.vboxusers.members = [ "${cfgUser}" ]; + }; +}