# Themes are your graphical sessions. # It also contains your aesthetics even specific workflow and whatnots. # You can also show your desktop being modularized like this. { config, lib, pkgs, ... }: let cfg = config.workflows; in { options.workflows.disableLimit = lib.mkOption { type = lib.types.bool; default = false; description = '' Whether to unlock the limit for workflows. Since workflows may overlap with packages and configurations, this should be enabled at your own risk. ''; }; imports = [ ./a-happy-gnome ./knome ./mosey-branch ]; config = { assertions = [{ assertion = let enabledThemes = lib.countAttrs (_: theme: theme.enable) cfg.workflows; in cfg.disableLimit || (enabledThemes <= 1); message = "Can't have more than one theme enabled at any given time."; }]; }; }