Compare commits
2 Commits
6ef7345919
...
b254df2436
| Author | SHA1 | Date | |
|---|---|---|---|
| b254df2436 | |||
| 8ac33f5e1b |
+30
-28
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user