From d74ba82a72e5d7347fa86a0a2393b26d1ef693e1 Mon Sep 17 00:00:00 2001 From: Sean Buckley Date: Thu, 10 Jun 2021 01:13:32 -0400 Subject: [PATCH] fix profile recursion --- modules/profiles.nix | 147 ++++++++++++++++++++++--------------------- 1 file changed, 74 insertions(+), 73 deletions(-) diff --git a/modules/profiles.nix b/modules/profiles.nix index dd60b10..a50d375 100644 --- a/modules/profiles.nix +++ b/modules/profiles.nix @@ -2,83 +2,84 @@ with lib; let cfg = config.sconfig.profile; - - - desktop-config = { - environment.systemPackages = with pkgs; [ - brave - gimp - ffmpeg - mpv - tdesktop - element-desktop - pavucontrol - gnome3.dconf-editor - glxinfo - steam-run - - (vscode-with-extensions.override { - vscode = vscodium; - vscodeExtensions = with pkgs.vscode-extensions; [ - bbenoist.Nix - ms-python.python - ms-vscode.cpptools - ms-azuretools.vscode-docker - ]; - }) - - (wrapFirefox firefox-unwrapped { - extraPolicies = { - CaptivePortal = false; - DisablePocket = true; - DisableFirefoxStudies = true; - OfferToSaveLogins = false; - DisableFormHistory = true; - SearchSuggestEnabled = false; - Preferences = { - "extensions.formautofill.available" = { Status = "locked"; Value = "off"; }; - "browser.contentblocking.category" = { Status = "locked"; Value = "strict"; }; - "network.IDN_show_punycode" = { Status = "locked"; Value = true; }; - "browser.zoom.siteSpecific" = { Status = "locked"; Value = false; }; - }; - }; - }) - - ]; - - programs.steam.enable = true; - - virtualisation.docker = { enable = true; enableOnBoot = false; }; - - hardware.pulseaudio.enable = false; - services.pipewire = { - enable = true; - pulse.enable = true; - alsa.enable = true; - alsa.support32Bit = true; - }; - - boot.loader.timeout = - if config.boot.loader.systemd-boot.enable - then null else lib.mkOverride 9999 99; - }; - - - server-config = { - services.openssh.enable = true; - documentation.nixos.enable = false; - nix.gc = { - automatic = true; - options = "--delete-older-than 30d"; - }; - }; - - in { options.sconfig.profile = mkOption { type = types.enum [ "server" "desktop" ]; }; - config = { inherit desktop server; }."${cfg}-config"; + config = mkMerge [ + + + (mkIf (cfg == "server") { + services.openssh.enable = true; + documentation.nixos.enable = false; + nix.gc = { + automatic = true; + options = "--delete-older-than 30d"; + }; + }) + + + (mkIf (cfg == "desktop") { + environment.systemPackages = with pkgs; [ + brave + gimp + ffmpeg + mpv + tdesktop + element-desktop + pavucontrol + gnome3.dconf-editor + glxinfo + steam-run + + (vscode-with-extensions.override { + vscode = vscodium; + vscodeExtensions = with pkgs.vscode-extensions; [ + bbenoist.Nix + ms-python.python + ms-vscode.cpptools + ms-azuretools.vscode-docker + ]; + }) + + (wrapFirefox firefox-unwrapped { + extraPolicies = { + CaptivePortal = false; + DisablePocket = true; + DisableFirefoxStudies = true; + OfferToSaveLogins = false; + DisableFormHistory = true; + SearchSuggestEnabled = false; + Preferences = { + "extensions.formautofill.available" = { Status = "locked"; Value = "off"; }; + "browser.contentblocking.category" = { Status = "locked"; Value = "strict"; }; + "network.IDN_show_punycode" = { Status = "locked"; Value = true; }; + "browser.zoom.siteSpecific" = { Status = "locked"; Value = false; }; + }; + }; + }) + + ]; + + programs.steam.enable = true; + + virtualisation.docker = { enable = true; enableOnBoot = false; }; + + hardware.pulseaudio.enable = false; + services.pipewire = { + enable = true; + pulse.enable = true; + alsa.enable = true; + alsa.support32Bit = true; + }; + + boot.loader.timeout = + if config.boot.loader.systemd-boot.enable + then null else lib.mkOverride 9999 99; + }) + + + ]; }