{ lib, pkgs, config, ... }: let programName = "waybar"; # Path to configuration assets programAssets = ../../../assets/system/conf/${programName}; programFiles = builtins.readDir programAssets; files = lib.genAttrs (builtins.attrNames programFiles) (name: { src = "${programAssets}/${name}"; }); # Toggle variable referring to the top-level option enableProgram = config.enableWaybar or false; # Default user fallback defaultUser = "henrov"; in { # Top-level toggle for the module options.enableWaybar = lib.mkEnableOption "Enable Waybar status bar"; # Wrap all actual configuration in mkIf(enableProgram) config = lib.mkIf enableProgram { # myApps container for dendritic structure myApps = { ${programName} = { enable = true; user = config.defaultUser or defaultUser; assetsDir = programAssets; files = files; }; }; }; }