From 1d493181792d8f6dbb3da406abf396d5da531ff2 Mon Sep 17 00:00:00 2001 From: ItsDrike Date: Mon, 8 Jul 2024 15:17:21 +0200 Subject: [PATCH 1/4] Add system-wide dependencies for virtualbox --- system/roles/workstation/programs/default.nix | 1 + .../roles/workstation/programs/virtualbox.nix | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 system/roles/workstation/programs/virtualbox.nix diff --git a/system/roles/workstation/programs/default.nix b/system/roles/workstation/programs/default.nix index 10f2500..7a16f0e 100644 --- a/system/roles/workstation/programs/default.nix +++ b/system/roles/workstation/programs/default.nix @@ -3,5 +3,6 @@ ./misc.nix ./physlock.nix ./thunar.nix + ./virtualbox.nix ]; } diff --git a/system/roles/workstation/programs/virtualbox.nix b/system/roles/workstation/programs/virtualbox.nix new file mode 100644 index 0000000..821c0ef --- /dev/null +++ b/system/roles/workstation/programs/virtualbox.nix @@ -0,0 +1,20 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf; + 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; + }; + }; +} From dfd2dd7ad3361bbbb6fa69ad8d59d6001f18faec Mon Sep 17 00:00:00 2001 From: ItsDrike Date: Mon, 8 Jul 2024 17:07:18 +0200 Subject: [PATCH 2/4] Add steam --- hosts/voyager/default.nix | 7 ++++++- options/home/programs/default.nix | 1 + system/roles/workstation/programs/default.nix | 1 + system/roles/workstation/programs/steam.nix | 19 +++++++++++++++++++ 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 system/roles/workstation/programs/steam.nix diff --git a/hosts/voyager/default.nix b/hosts/voyager/default.nix index 1702653..26abec4 100644 --- a/hosts/voyager/default.nix +++ b/hosts/voyager/default.nix @@ -64,10 +64,14 @@ ".config/WebCord" ".local/share/Smart Code ltd/Stremio" ".config/obs-studio" - ".local/share/PrismLauncher" ".config/VirtualBox" ".local/share/VirtulBox VMs" + # Games + ".local/share/PrismLauncher" + ".local/share/Steam" + #".steam" + # Tools ".ssh" ".local/share/gnupg" @@ -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 7a16f0e..fc41a58 100644 --- a/system/roles/workstation/programs/default.nix +++ b/system/roles/workstation/programs/default.nix @@ -4,5 +4,6 @@ ./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; + }; + }; +} + From 04b6f8f64fe31deb5cfa9cc6154e7984a130dfe7 Mon Sep 17 00:00:00 2001 From: ItsDrike Date: Mon, 8 Jul 2024 17:39:30 +0200 Subject: [PATCH 3/4] persistance: Fix typo in VirtualBox directory name --- hosts/voyager/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/voyager/default.nix b/hosts/voyager/default.nix index 26abec4..f46c610 100644 --- a/hosts/voyager/default.nix +++ b/hosts/voyager/default.nix @@ -65,7 +65,7 @@ ".local/share/Smart Code ltd/Stremio" ".config/obs-studio" ".config/VirtualBox" - ".local/share/VirtulBox VMs" + ".local/share/VirtualBox VMs" # Games ".local/share/PrismLauncher" From b130aec6d68e3d52a79602331080ec8c563373a9 Mon Sep 17 00:00:00 2001 From: ItsDrike Date: Mon, 8 Jul 2024 17:47:41 +0200 Subject: [PATCH 4/4] Add primary user to vboxusers group --- system/roles/workstation/programs/virtualbox.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/system/roles/workstation/programs/virtualbox.nix b/system/roles/workstation/programs/virtualbox.nix index 821c0ef..a890e84 100644 --- a/system/roles/workstation/programs/virtualbox.nix +++ b/system/roles/workstation/programs/virtualbox.nix @@ -4,6 +4,7 @@ ... }: 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"]; @@ -16,5 +17,7 @@ in { # if gui is desired, it can be installed separately on a per-user basis headless = true; }; + + users.extraGroups.vboxusers.members = [ "${cfgUser}" ]; }; }