{ lib, theme ? "default" }: let configs = { default = { global = { background = "#26233a"; foreground = "#e0def4"; }; urgency_low = { background = "#26273d"; highlight = "#31748f"; }; urgency_normal = { background = "#362e3c"; highlight = "#f6c177"; }; urgency_critical = { background = "#362e3c"; highlight = "#eb6f92"; }; }; moon = { global = { background = "#393552"; foreground = "#e0def4"; }; urgency_low = { background = "#393955"; highlight = "#3e8fb0"; }; urgency_normal = { background = "#443c53"; highlight = "#f6c177"; }; urgency_critical = { background = "#433754"; highlight = "#eb6f92"; }; }; dawn = { global = { background = "#f2e9e1"; foreground = "#393552"; }; urgency_low = { background = "#e7e0da"; highlight = "#286983"; }; urgency_normal = { background = "#3e8fb0"; highlight = "#ea9d34"; }; urgency_critical = { background = "#ede0d9"; highlight = "#b4637a"; }; }; }; formatWithColor = color: "%s\n%b"; getConfig = name: if name == "moon" then configs.moon else if name == "dawn" then configs.dawn else configs.default; selectedConfig = getConfig theme; in { global = { width = 400; offset = "5x5"; progress_bar_min_width = 380; progress_bar_max_width = 380; progress_bar_corner_radius = 2; padding = 10; horizontal_padding = 10; frame_width = 1; gap_size = 3; font = "Monospace 14"; icon_theme = "rose-pine-icons"; enable_recursive_icon_lookup = true; corner_radius = 2; inherit (selectedConfig.global) background foreground; }; urgency_low = rec { inherit (selectedConfig.urgency_low) background highlight; frame_color = highlight; default_icon = "dialog-information"; format = formatWithColor highlight; }; urgency_normal = rec { inherit (selectedConfig.urgency_normal) background highlight; frame_color = highlight; default_icon = "dialog-warning"; format = formatWithColor highlight; }; urgency_critical = rec { inherit (selectedConfig.urgency_critical) background highlight; frame_color = highlight; default_icon = "dialog-error"; format = formatWithColor highlight; }; }