diff --git a/docs/src/tricks.md b/docs/src/tricks.md index c25e348..5fdda9f 100644 --- a/docs/src/tricks.md +++ b/docs/src/tricks.md @@ -57,3 +57,25 @@ Which is neatly implemented as a single function in `lib.stylix.pixel`: }; } ``` + +## Completely disabling some stylix targets + +Nixpkgs module system sometimes works in non-intuitive ways, e.g. parts +of the configuration guarded by `lib.mkIf` are still being descended +into. This means that every **loaded** (and not enabled) module must +be compatible with others - in the sense that **every** option that is +mentioned in the disabled parts of the configuration still needs to be +defined somewhere. + +Sometimes that can be a problem, when your particular configuration +diverges enough from what stylix expects. In that case you can try +stubbing all the missing options in your configuration. + +Or in a much clearer fashion you can just disable offending stylix targets +by adding the following `disableModules` line next to importing stylix +itself: + +```nix +imports = [ flake.inputs.stylix.nixosModules.stylix ]; +disabledModules = [ "${flake.inputs.stylix}/modules//nixos.nix" ]; +``` diff --git a/stylix/autoload.nix b/stylix/autoload.nix index bfb2fe6..8610ebc 100644 --- a/stylix/autoload.nix +++ b/stylix/autoload.nix @@ -1,4 +1,4 @@ -{ lib }: +{ lib, inputs }: # string -> [ path ] # List include path for either nixos modules or hm modules @@ -8,7 +8,7 @@ for: (path: kind: if kind == "directory" then let - file = "${../modules}/${path}/${for}.nix"; + file = "${inputs.self}/modules/${path}/${for}.nix"; in if builtins.pathExists file then [ file ] else [ ] else [ ]) - (builtins.readDir ../modules)) + (builtins.readDir "${inputs.self}/modules")) diff --git a/stylix/darwin/default.nix b/stylix/darwin/default.nix index 19e7c6e..a4eca70 100644 --- a/stylix/darwin/default.nix +++ b/stylix/darwin/default.nix @@ -3,7 +3,7 @@ inputs: { lib, ... }: let - autoload = import ../autoload.nix { inherit lib; } "darwin"; + autoload = import ../autoload.nix { inherit lib inputs; } "darwin"; in { imports = [ ../pixel.nix diff --git a/stylix/hm/default.nix b/stylix/hm/default.nix index a5cae17..225ea27 100644 --- a/stylix/hm/default.nix +++ b/stylix/hm/default.nix @@ -3,7 +3,7 @@ inputs: { lib, ... }: let - autoload = import ../autoload.nix { inherit lib; } "hm"; + autoload = import ../autoload.nix { inherit lib inputs; } "hm"; in { imports = [ ../pixel.nix diff --git a/stylix/nixos/default.nix b/stylix/nixos/default.nix index 56c4741..eba0405 100644 --- a/stylix/nixos/default.nix +++ b/stylix/nixos/default.nix @@ -3,7 +3,7 @@ inputs: { lib, ... }: let - autoload = import ../autoload.nix { inherit lib; } "nixos"; + autoload = import ../autoload.nix { inherit lib inputs; } "nixos"; in { imports = [ ../pixel.nix diff --git a/stylix/testbed.nix b/stylix/testbed.nix index cbfaffc..c5b7c1a 100644 --- a/stylix/testbed.nix +++ b/stylix/testbed.nix @@ -30,12 +30,12 @@ let (name: _: let testbed = { inherit name; - module = "${../modules}/${name}/testbed.nix"; + module = "${inputs.self}/modules/${name}/testbed.nix"; }; in lib.optional (builtins.pathExists testbed.module) testbed ) - (builtins.readDir ../modules)); + (builtins.readDir "${inputs.self}/modules")); makeTestbed = testbed: stylix: