{ config, ... }: let inherit (config.lib.formats.rasi) mkLiteral; colors = config.colorScheme; in { programs.rofi = { enable = true; font = "${config.theme.font.family} ${builtins.toString config.theme.font.size}"; theme = { "*" = { background-color = mkLiteral "transparent"; text-color = mkLiteral colors.editor.fg; }; window = { background-color = mkLiteral colors.ui.popup.bg; border = mkLiteral "2px"; border-color = mkLiteral colors.ui.line; border-radius = mkLiteral "8px"; padding = mkLiteral "16px"; width = mkLiteral "40%"; }; inputbar = { children = map mkLiteral [ "prompt" "entry" ]; background-color = mkLiteral colors.ui.panel.bg; border-radius = mkLiteral "4px"; padding = mkLiteral "8px"; spacing = mkLiteral "8px"; }; prompt = { text-color = mkLiteral colors.common.accent.tint; }; entry = { placeholder = "Search"; placeholder-color = mkLiteral colors.ui.fg; }; listview = { lines = 8; scrollbar = false; spacing = mkLiteral "2px"; margin = mkLiteral "12px 0px 0px 0px"; }; element = { padding = mkLiteral "8px"; border-radius = mkLiteral "4px"; spacing = mkLiteral "8px"; }; "element normal urgent" = { text-color = mkLiteral colors.common.error; }; "element normal active" = { text-color = mkLiteral colors.common.accent.tint; }; "element selected normal" = { background-color = mkLiteral colors.common.accent.tint; text-color = mkLiteral colors.surface.base; }; element-icon = { size = mkLiteral "1em"; }; element-text = { text-color = mkLiteral "inherit"; }; }; }; }