Compare commits
2 Commits
6ef7345919
...
b254df2436
| Author | SHA1 | Date | |
|---|---|---|---|
| b254df2436 | |||
| 8ac33f5e1b |
+10
-8
@@ -1007,25 +1007,26 @@ let
|
|||||||
});
|
});
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# 1. Top-level toggle (no config usage!)
|
# Top-level option toggle (does NOT reference config)
|
||||||
options.myApps.${programName}.enable =
|
options.myApps.${programName}.enable =
|
||||||
lib.mkEnableOption "Enable Eww widgets";
|
lib.mkEnableOption "Enable ${programName} widgets";
|
||||||
|
|
||||||
# 2. Configuration block (only use config inside lib.mkIf)
|
# Config block — safely uses variables inside lib.mkIf
|
||||||
config = lib.mkIf (lib.getOption config "myApps.${programName}.enable" or false) (let
|
config = {
|
||||||
username = config.defaultUser or "henrov";
|
myApps = lib.mkIf (lib.getOption options "myApps.${programName}.enable") (let
|
||||||
|
username = (config.defaultUser or "henrov");
|
||||||
ewwConfigDir = "/home/${username}/.config/${programName}";
|
ewwConfigDir = "/home/${username}/.config/${programName}";
|
||||||
enableProgram = true; # already gated by mkIf
|
enableProgram = true;
|
||||||
in {
|
in {
|
||||||
myApps = {
|
# Top-level container
|
||||||
${programName} = {
|
${programName} = {
|
||||||
enable = enableProgram;
|
enable = enableProgram;
|
||||||
assetsDir = programAssets;
|
assetsDir = programAssets;
|
||||||
files = files;
|
files = files;
|
||||||
user = username;
|
user = username;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
|
# Home Manager user config
|
||||||
home-manager.users.${username} = {
|
home-manager.users.${username} = {
|
||||||
home.stateVersion = "26.05";
|
home.stateVersion = "26.05";
|
||||||
home.username = username;
|
home.username = username;
|
||||||
@@ -1046,6 +1047,7 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
};
|
||||||
}
|
}
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
|||||||
@@ -9,25 +9,26 @@ let
|
|||||||
});
|
});
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# 1. Top-level toggle (no config usage!)
|
# Top-level option toggle (does NOT reference config)
|
||||||
options.myApps.${programName}.enable =
|
options.myApps.${programName}.enable =
|
||||||
lib.mkEnableOption "Enable Eww widgets";
|
lib.mkEnableOption "Enable ${programName} widgets";
|
||||||
|
|
||||||
# 2. Configuration block (only use config inside lib.mkIf)
|
# Config block — safely uses variables inside lib.mkIf
|
||||||
config = lib.mkIf (lib.getOption config "myApps.${programName}.enable" or false) (let
|
config = {
|
||||||
username = config.defaultUser or "henrov";
|
myApps = lib.mkIf (lib.getOption options "myApps.${programName}.enable") (let
|
||||||
|
username = (config.defaultUser or "henrov");
|
||||||
ewwConfigDir = "/home/${username}/.config/${programName}";
|
ewwConfigDir = "/home/${username}/.config/${programName}";
|
||||||
enableProgram = true; # already gated by mkIf
|
enableProgram = true;
|
||||||
in {
|
in {
|
||||||
myApps = {
|
# Top-level container
|
||||||
${programName} = {
|
${programName} = {
|
||||||
enable = enableProgram;
|
enable = enableProgram;
|
||||||
assetsDir = programAssets;
|
assetsDir = programAssets;
|
||||||
files = files;
|
files = files;
|
||||||
user = username;
|
user = username;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
|
# Home Manager user config
|
||||||
home-manager.users.${username} = {
|
home-manager.users.${username} = {
|
||||||
home.stateVersion = "26.05";
|
home.stateVersion = "26.05";
|
||||||
home.username = username;
|
home.username = username;
|
||||||
@@ -48,4 +49,5 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user