From 24499b0049881959bd4e159b6fe4e96e4c03db25 Mon Sep 17 00:00:00 2001 From: NAHO <90870942+trueNAHO@users.noreply.github.com> Date: Sat, 19 Jul 2025 19:55:09 +0200 Subject: [PATCH] stylix: conditionally load external modules in testbeds (#1698) Conditionally load external modules in testbeds to preserve testbed integrity by preventing unrelated code from running and potentially invalidating its meaning. Any performance benefit is merely a side effect of this more targeted module loading. Link: https://github.com/nix-community/stylix/pull/1698 Reviewed-by: awwpotato Reviewed-by: Flameopathic <64027365+Flameopathic@users.noreply.github.com> --- stylix/testbed/default.nix | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/stylix/testbed/default.nix b/stylix/testbed/default.nix index cae01ecb..982ac67d 100644 --- a/stylix/testbed/default.nix +++ b/stylix/testbed/default.nix @@ -3,6 +3,7 @@ inputs, lib, modules ? import ./autoload.nix { inherit pkgs lib; }, + testbedFieldSeparator ? ":", }: let makeTestbed = @@ -19,15 +20,24 @@ let inputs.self.nixosModules.stylix inputs.home-manager.nixosModules.home-manager testbed - - # modules for external targets - inputs.nvf.nixosModules.default - inputs.nixvim.nixosModules.nixvim - inputs.spicetify-nix.nixosModules.spicetify ] ++ map (name: import ./graphical-environments/${name}.nix) ( import ./available-graphical-environments.nix { inherit lib; } - ); + ) + ++ + lib.mapAttrsToList + ( + target: + lib.optionalAttrs ( + lib.hasPrefix "testbed${testbedFieldSeparator}${target}" name + ) + ) + { + inherit (inputs.nixvim.nixosModules) nixvim; + inherit (inputs.spicetify-nix.nixosModules) spicetify; + + nvf = inputs.nvf.nixosModules.default; + }; }; in pkgs.writeShellApplication {