{ config, theme, ... }: let inherit (config.lib.formats.rasi) mkLiteral; p = theme.palette; in { programs.rofi.theme = { "*" = { background = mkLiteral p.darkestGray; background-color = mkLiteral p.darkestGray; foreground = mkLiteral p.lightGray; lightbg = mkLiteral p.darkerGray; lightfg = mkLiteral p.lighterGray; red = mkLiteral p.red; blue = mkLiteral p.purple; border-color = mkLiteral "@foreground"; separatorcolor = mkLiteral "@foreground"; normal-background = mkLiteral "@background"; normal-foreground = mkLiteral "@foreground"; normal-text = mkLiteral p.lightGray; alternate-normal-background = mkLiteral "@lightbg"; alternate-normal-foreground = mkLiteral "@foreground"; alternate-normal-text = mkLiteral p.lightGray; selected-normal-background = mkLiteral "@lightfg"; selected-normal-foreground = mkLiteral "@lightbg"; selected-normal-text = mkLiteral p.darkerGray; active-background = mkLiteral "@background"; active-foreground = mkLiteral "@blue"; active-text = mkLiteral p.purple; alternate-active-background = mkLiteral "@lightbg"; alternate-active-foreground = mkLiteral "@blue"; alternate-active-text = mkLiteral p.purple; selected-active-background = mkLiteral "@blue"; selected-active-foreground = mkLiteral "@background"; selected-active-text = mkLiteral p.darkestGray; urgent-background = mkLiteral "@background"; urgent-foreground = mkLiteral "@red"; urgent-text = mkLiteral p.red; alternate-urgent-background = mkLiteral "@lightbg"; alternate-urgent-foreground = mkLiteral "@red"; alternate-urgent-text = mkLiteral p.red; selected-urgent-background = mkLiteral "@red"; selected-urgent-foreground = mkLiteral "@background"; selected-urgent-text = mkLiteral p.darkestGray; base-text = mkLiteral p.lightGray; }; "button".text-color = mkLiteral "@normal-text"; "button selected" = { background-color = mkLiteral "@selected-normal-background"; text-color = mkLiteral "@selected-normal-text"; }; "case-indicator".text-color = mkLiteral "@normal-text"; "element alternate.active" = { background-color = mkLiteral "@alternate-active-background"; text-color = mkLiteral "@alternate-active-text"; }; "element alternate.normal" = { background-color = mkLiteral "@alternate-normal-background"; text-color = mkLiteral "@alternate-normal-text"; }; "element alternate.urgent" = { background-color = mkLiteral "@alternate-urgent-background"; text-color = mkLiteral "@alternate-urgent-text"; }; "element normal.active" = { background-color = mkLiteral "@active-background"; text-color = mkLiteral "@active-text"; }; "element normal.normal" = { background-color = mkLiteral "@normal-background"; text-color = mkLiteral "@normal-text"; }; "element normal.urgent" = { background-color = mkLiteral "@urgent-background"; text-color = mkLiteral "@urgent-text"; }; "element selected.active" = { background-color = mkLiteral "@selected-active-background"; text-color = mkLiteral "@selected-active-text"; }; "element selected.normal" = { background-color = mkLiteral "@selected-normal-background"; text-color = mkLiteral "@selected-normal-text"; }; "element selected.urgent" = { background-color = mkLiteral "@selected-urgent-background"; text-color = mkLiteral "@selected-urgent-text"; }; "element-icon" = { background-color = mkLiteral "inherit"; text-color = mkLiteral "inherit"; }; "element-text" = { background-color = mkLiteral "inherit"; text-color = mkLiteral "inherit"; }; "entry".text-color = mkLiteral "@normal-text"; "inputbar".text-color = mkLiteral "@normal-text"; "listview".border-color = mkLiteral "@separatorcolor"; "message".border-color = mkLiteral "@separatorcolor"; "prompt".text-color = mkLiteral "@normal-text"; "scrollbar".handle-color = mkLiteral "@normal-foreground"; "sidebar".border-color = mkLiteral "@separatorcolor"; "textbox".text-color = mkLiteral "@base-text"; "textbox-prompt-colon".text-color = mkLiteral "inherit"; "window".background-color = mkLiteral "@background"; }; }