{ lib, ... }: let mkColorOption = description: lib.mkOption { type = lib.types.str; inherit description; }; in { options.local.theme = { bar = { background = mkColorOption "Background pane color"; mainText = mkColorOption "Main text color"; inactiveText = mkColorOption "Inactive text color"; }; window = { activeBorder = mkColorOption "Color for window active border"; inactiveBorder = mkColorOption "Color for window inactive border"; }; notification = { background = mkColorOption "Notification background color"; summary = mkColorOption "Notification summary text color"; body = mkColorOption "Notification body text color"; appName = mkColorOption "Notification app name text color"; lowBorder = mkColorOption "Notification low priority border color"; normalBorder = mkColorOption "Notification normal priority border color"; criticalBorder = mkColorOption "Notification critical priority border color"; pausedBorder = mkColorOption "Notification paused border color"; }; highlights = { success = mkColorOption "Success color"; warning = mkColorOption "Warnings color"; error = mkColorOption "Errors color"; critical = mkColorOption "Clitical color"; link = mkColorOption "Links color"; tags = mkColorOption "Search results, tags color"; }; syntax = { markText = mkColorOption "Text color for marked background"; mark1 = mkColorOption "Marked color 1"; mark2 = mkColorOption "Marked color 2"; mark3 = mkColorOption "Marked color 3"; }; }; }