Compare commits

...

2 Commits

Author SHA1 Message Date
henrov b254df2436 Working on reshuffling 2026-03-19 12:58:37 +00:00
henrov 8ac33f5e1b deleted generated files 2026-03-19 12:58:36 +00:00
2 changed files with 60 additions and 56 deletions
+30 -28
View File
@@ -1007,45 +1007,47 @@ 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
ewwConfigDir = "/home/${username}/.config/${programName}"; username = (config.defaultUser or "henrov");
enableProgram = true; # already gated by mkIf ewwConfigDir = "/home/${username}/.config/${programName}";
in { enableProgram = true;
myApps = { in {
# Top-level container
${programName} = { ${programName} = {
enable = enableProgram; enable = enableProgram;
assetsDir = programAssets; assetsDir = programAssets;
files = files; files = files;
user = username; user = username;
}; };
};
home-manager.users.${username} = { # Home Manager user config
home.stateVersion = "26.05"; home-manager.users.${username} = {
home.username = username; home.stateVersion = "26.05";
home.homeDirectory = "/home/${username}"; home.username = username;
home.homeDirectory = "/home/${username}";
home.file."${ewwConfigDir}" = { home.file."${ewwConfigDir}" = {
source = programAssets; source = programAssets;
recursive = true; recursive = true;
};
home.sessionVariables = {
EWW_BIN = "${pkgs.eww}/bin/eww";
};
wayland.windowManager.hyprland.settings = lib.mkForce {
exec-once = [ "eww daemon" ];
exec = [ "eww open-many ${ewwConfigDir}/widgets" ];
};
}; };
});
home.sessionVariables = { };
EWW_BIN = "${pkgs.eww}/bin/eww";
};
wayland.windowManager.hyprland.settings = lib.mkForce {
exec-once = [ "eww daemon" ];
exec = [ "eww open-many ${ewwConfigDir}/widgets" ];
};
};
});
} }
#+END_SRC #+END_SRC
+30 -28
View File
@@ -9,43 +9,45 @@ 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
ewwConfigDir = "/home/${username}/.config/${programName}"; username = (config.defaultUser or "henrov");
enableProgram = true; # already gated by mkIf ewwConfigDir = "/home/${username}/.config/${programName}";
in { enableProgram = true;
myApps = { in {
# Top-level container
${programName} = { ${programName} = {
enable = enableProgram; enable = enableProgram;
assetsDir = programAssets; assetsDir = programAssets;
files = files; files = files;
user = username; user = username;
}; };
};
home-manager.users.${username} = { # Home Manager user config
home.stateVersion = "26.05"; home-manager.users.${username} = {
home.username = username; home.stateVersion = "26.05";
home.homeDirectory = "/home/${username}"; home.username = username;
home.homeDirectory = "/home/${username}";
home.file."${ewwConfigDir}" = { home.file."${ewwConfigDir}" = {
source = programAssets; source = programAssets;
recursive = true; recursive = true;
};
home.sessionVariables = {
EWW_BIN = "${pkgs.eww}/bin/eww";
};
wayland.windowManager.hyprland.settings = lib.mkForce {
exec-once = [ "eww daemon" ];
exec = [ "eww open-many ${ewwConfigDir}/widgets" ];
};
}; };
});
home.sessionVariables = { };
EWW_BIN = "${pkgs.eww}/bin/eww";
};
wayland.windowManager.hyprland.settings = lib.mkForce {
exec-once = [ "eww daemon" ];
exec = [ "eww open-many ${ewwConfigDir}/widgets" ];
};
};
});
} }