From 0a80d61e7f1c7a026565818b8eef57aea0471db6 Mon Sep 17 00:00:00 2001 From: Aly Raffauf Date: Sun, 28 Jul 2024 23:16:52 -0400 Subject: [PATCH] home/rofi: add custom theme with theme module integration --- homeManagerModules/apps/rofi/default.nix | 150 ++++++++++++++++++++++- 1 file changed, 149 insertions(+), 1 deletion(-) diff --git a/homeManagerModules/apps/rofi/default.nix b/homeManagerModules/apps/rofi/default.nix index 606dc1b8..d3de46f3 100644 --- a/homeManagerModules/apps/rofi/default.nix +++ b/homeManagerModules/apps/rofi/default.nix @@ -19,7 +19,7 @@ in { package = pkgs.rofi-wayland; plugins = [pkgs.rofi-power-menu]; terminal = lib.getExe cfg.defaultApps.terminal; - theme = "glue_pro_blue"; + theme = "theme.rasi"; extraConfig = { click-to-exit = true; @@ -51,6 +51,154 @@ in { }; }; + xdg.configFile."rofi/theme.rasi".text = '' + * { + selected-normal-foreground: ${cfg.theme.colors.text}; + foreground: ${cfg.theme.colors.text}; + normal-foreground: @foreground; + alternate-normal-background: transparent; + red: ${cfg.theme.colors.secondary}; + selected-urgent-foreground: ${cfg.theme.colors.secondary}; + blue: ${cfg.theme.colors.primary}; + urgent-foreground: ${cfg.theme.colors.primary}; + alternate-urgent-background: transparent; + active-foreground: ${cfg.theme.colors.primary}; + lightbg: rgba ( 238, 232, 213, 100 % ); + selected-active-foreground: rgba ( 32, 81, 113, 100 % ); + alternate-active-background: transparent; + background: transparent; + bordercolor: ${cfg.theme.colors.background}CC; + alternate-normal-foreground: @foreground; + normal-background: transparent; + lightfg: rgba ( 88, 104, 117, 100 % ); + selected-normal-background: ${cfg.theme.colors.primary}; + border-color: ${cfg.theme.colors.primary}; + spacing: 2; + separatorcolor: ${cfg.theme.colors.primary}; + urgent-background: transparent; + selected-urgent-background: ${cfg.theme.colors.primary}; + alternate-urgent-foreground: @urgent-foreground; + background-color: rgba ( 0, 0, 0, 0 % ); + alternate-active-foreground: @active-foreground; + active-background: ${cfg.theme.colors.background}CC; + selected-active-background: ${cfg.theme.colors.primary}; + } + window { + background-color: ${cfg.theme.colors.background}CC; + border: 2; + border-radius: 10px; + padding: 5; + } + mainbox { + border: 0; + padding: 0; + } + message { + border: 1px dash 0px 0px ; + border-color: @separatorcolor; + padding: 1px ; + } + textbox { + text-color: @foreground; + } + listview { + fixed-height: 0; + border: 2px dash 0px 0px ; + border-color: @separatorcolor; + spacing: 2px ; + scrollbar: true; + padding: 2px 0px 0px ; + } + element { + border: 0; + padding: 1px ; + } + element-text { + background-color: inherit; + text-color: inherit; + } + element.normal.normal { + background-color: @normal-background; + text-color: @normal-foreground; + } + element.normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; + } + element.normal.active { + background-color: @active-background; + text-color: @active-foreground; + } + element.selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; + } + element.selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; + } + element.selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; + } + element.alternate.normal { + background-color: @alternate-normal-background; + text-color: @alternate-normal-foreground; + } + element.alternate.urgent { + background-color: @alternate-urgent-background; + text-color: @alternate-urgent-foreground; + } + element.alternate.active { + background-color: @alternate-active-background; + text-color: @alternate-active-foreground; + } + scrollbar { + width: 4px ; + border: 0; + handle-width: 8px ; + padding: 0; + } + mode-switcher { + border: 2px dash 0px 0px ; + border-color: @separatorcolor; + } + button.selected { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; + } + button { + background-color: @background; + text-color: @foreground; + } + inputbar { + spacing: 0; + text-color: @normal-foreground; + padding: 1px ; + } + case-indicator { + spacing: 0; + text-color: @normal-foreground; + } + entry { + spacing: 0; + text-color: @normal-foreground; + } + prompt { + spacing: 0; + text-color: @normal-foreground; + } + inputbar { + children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; + } + textbox-prompt-colon { + expand: false; + str: ":"; + margin: 0px 0.3em 0em 0em ; + text-color: @normal-foreground; + } + ''; + xdg.configFile."networkmanager-dmenu/config.ini".text = '' [dmenu] dmenu_command = ${lib.getExe config.programs.rofi.package}