mirror of
https://github.com/danth/stylix
synced 2024-11-24 21:23:24 +00:00
stylix: don't split autoloaded modules into a separate derivation (#631)
Apparently `../modules` is creating a separate derivation that contains only that folder, so it's now separate from the flake source. But this transient derivation isn't mentioned explicitly anywhere in the flake outputs. It makes it impossible to target those modules in `disabledModules` directive. For example, after this change is applied, users can solve issues like https://github.com/danth/stylix/issues/577 locally, by just adding the following snippet to their configuration: disabledModules = [ "${inputs.stylix}/modules/regreet/nixos.nix" ]; Reviewed-by: Daniel Thwaites <danthwaites30@btinternet.com> Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com>
This commit is contained in:
parent
cf5be812bd
commit
9b61cc39b2
6 changed files with 30 additions and 8 deletions
|
@ -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/<some-module>/nixos.nix" ];
|
||||||
|
```
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib }:
|
{ lib, inputs }:
|
||||||
|
|
||||||
# string -> [ path ]
|
# string -> [ path ]
|
||||||
# List include path for either nixos modules or hm modules
|
# List include path for either nixos modules or hm modules
|
||||||
|
@ -8,7 +8,7 @@ for:
|
||||||
(path: kind:
|
(path: kind:
|
||||||
if kind == "directory"
|
if kind == "directory"
|
||||||
then let
|
then let
|
||||||
file = "${../modules}/${path}/${for}.nix";
|
file = "${inputs.self}/modules/${path}/${for}.nix";
|
||||||
in if builtins.pathExists file then [ file ] else [ ]
|
in if builtins.pathExists file then [ file ] else [ ]
|
||||||
else [ ])
|
else [ ])
|
||||||
(builtins.readDir ../modules))
|
(builtins.readDir "${inputs.self}/modules"))
|
||||||
|
|
|
@ -3,7 +3,7 @@ inputs:
|
||||||
{ lib, ... }:
|
{ lib, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
autoload = import ../autoload.nix { inherit lib; } "darwin";
|
autoload = import ../autoload.nix { inherit lib inputs; } "darwin";
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
../pixel.nix
|
../pixel.nix
|
||||||
|
|
|
@ -3,7 +3,7 @@ inputs:
|
||||||
{ lib, ... }:
|
{ lib, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
autoload = import ../autoload.nix { inherit lib; } "hm";
|
autoload = import ../autoload.nix { inherit lib inputs; } "hm";
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
../pixel.nix
|
../pixel.nix
|
||||||
|
|
|
@ -3,7 +3,7 @@ inputs:
|
||||||
{ lib, ... }:
|
{ lib, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
autoload = import ../autoload.nix { inherit lib; } "nixos";
|
autoload = import ../autoload.nix { inherit lib inputs; } "nixos";
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
../pixel.nix
|
../pixel.nix
|
||||||
|
|
|
@ -30,12 +30,12 @@ let
|
||||||
(name: _:
|
(name: _:
|
||||||
let testbed = {
|
let testbed = {
|
||||||
inherit name;
|
inherit name;
|
||||||
module = "${../modules}/${name}/testbed.nix";
|
module = "${inputs.self}/modules/${name}/testbed.nix";
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
lib.optional (builtins.pathExists testbed.module) testbed
|
lib.optional (builtins.pathExists testbed.module) testbed
|
||||||
)
|
)
|
||||||
(builtins.readDir ../modules));
|
(builtins.readDir "${inputs.self}/modules"));
|
||||||
|
|
||||||
makeTestbed =
|
makeTestbed =
|
||||||
testbed: stylix:
|
testbed: stylix:
|
||||||
|
|
Loading…
Reference in a new issue