{ lib, flakeRoot, pkgs, ... }: let programName = "zenbrowser"; programAssets = ../../../assets/system/conf/${programName}; programFiles = builtins.readDir programAssets; files = lib.genAttrs (builtins.attrNames programFiles) (name: { src = "${programAssets}/${name}"; }); in { # Top-level toggle option (just use a literal quoted key) "enableZenbrowser" = lib.mkEnableOption "Enable Zen Browser"; # Configuration (must be a function so `config` exists) config = { config, pkgs, ... }: let enableProgram = config."enableZenbrowser" or false; username = config.defaultUser or "henrov"; in lib.mkIf enableProgram { # Dendritic container myApps = { ${programName} = { enable = true; assetsDir = programAssets; files = files; user = username; }; }; # Home Manager user config home-manager.users.${username} = { home.stateVersion = "26.05"; home.username = username; home.homeDirectory = "/home/${username}"; home.packages = [ pkgs.zen-browser ]; }; }; }