diff --git a/common/fragments/graphical/rofi.nix b/common/fragments/graphical/rofi.nix new file mode 100644 index 0000000..2fd3d99 --- /dev/null +++ b/common/fragments/graphical/rofi.nix @@ -0,0 +1,186 @@ +{ lib, pkgs, config, ... }@attrs: +let + utils = import ./colors.nix attrs; + colorscheme = utils.colorscheme "purple" ../../../external/6.png; + color = n: colorscheme.colors."${builtins.toString n}"; +in { + home-manager.users.agatha = { + programs.rofi = { + enable = true; + font = "DaddyTimeMono Nerd Font 10"; + terminal = "${pkgs.kitty}/bin/kitty"; + + theme = let + inherit (config.home-manager.users.agatha.lib.formats.rasi) mkLiteral; + in { + "*" = { + background = mkLiteral (color 0); + foreground = mkLiteral (color 15); + + active-background = mkLiteral (color 2); + active-foreground = mkLiteral "@foreground"; + alternate-active-background = mkLiteral "@background"; + alternate-active-foreground = mkLiteral "@foreground"; + alternate-normal-background = mkLiteral "@background"; + alternate-normal-foreground = mkLiteral "@foreground"; + alternate-urgent-background = mkLiteral "@background"; + alternate-urgent-foreground = mkLiteral "@foreground"; + background-color = mkLiteral "@background"; + border-color = mkLiteral "@background"; + border-radius = mkLiteral "0px"; + lightfg = mkLiteral "#333b5c"; + normal-background = mkLiteral "@background"; + normal-foreground = mkLiteral "@foreground"; + selected-active-background = mkLiteral (color 1); + selected-active-foreground = mkLiteral "@foreground"; + selected-normal-background = mkLiteral (color 2); + selected-normal-foreground = mkLiteral "@foreground"; + selected-urgent-background = mkLiteral (color 3); + selected-urgent-foreground = mkLiteral "@foreground"; + separatorcolor = mkLiteral "@foreground"; + urgent-background = mkLiteral (color 1); + urgent-foreground = mkLiteral "@foreground"; + + spacing = 4; + }; + + "#window" = { + background-color = mkLiteral "var(background)"; + border-color = mkLiteral "var(urgent-background)"; + + width = mkLiteral "30em"; + padding = 5; + border = 3; + }; + + "#message" = { + border-color = mkLiteral "@border-color"; + padding = mkLiteral "1px"; + }; + + "#textbox" = { text-color = mkLiteral "@foreground"; }; + + "#textbox-prompt-colon" = { + text-color = mkLiteral "@normal-foreground"; + }; + + "#listview" = { + border-color = mkLiteral "@border-color"; + padding = mkLiteral "2px 0px 0px"; + scrollbar = true; + spacing = mkLiteral "2px"; + fixed-height = 0; + lines = 10; + }; + + "element" = { + padding = mkLiteral "5px"; + cursor = mkLiteral "pointer"; + }; + + "#element-text, element-icon" = { + background-color = mkLiteral "transparent"; + text-color = mkLiteral "inherit"; + }; + + "#element.normal.normal" = { + background-color = mkLiteral "@normal-background"; + text-color = mkLiteral "@normal-foreground"; + }; + + "#element.normal.urgent" = { + background-color = mkLiteral "@urgent-background"; + text-color = mkLiteral "@urgent-foreground"; + }; + + "#element.normal.active" = { + background-color = mkLiteral "@active-background"; + text-color = mkLiteral "@active-foreground"; + }; + + "#element.selected.normal" = { + background-color = mkLiteral "@selected-normal-background"; + text-color = mkLiteral "@selected-normal-foreground"; + }; + + "#element.selected.urgent" = { + background-color = mkLiteral "@selected-urgent-background"; + text-color = mkLiteral "@selected-urgent-foreground"; + }; + + "#element.selected.active" = { + background-color = mkLiteral "@selected-active-background"; + text-color = mkLiteral "@selected-active-foreground"; + }; + + "#element.alternate.normal" = { + background-color = mkLiteral "@alternate-normal-background"; + text-color = mkLiteral "@alternate-normal-foreground"; + }; + + "#element.alternate.urgent" = { + background-color = mkLiteral "@alternate-urgent-background"; + text-color = mkLiteral "@alternate-urgent-foreground"; + }; + + "#element.alternate.active" = { + background-color = mkLiteral "@alternate-active-background"; + text-color = mkLiteral "@alternate-active-foreground"; + }; + + "#sidebar" = { border-color = mkLiteral "@border-color"; }; + + "#button" = { text-color = mkLiteral "@normal-foreground"; }; + + "#button.selected" = { + background-color = mkLiteral "@selected-normal-background"; + text-color = mkLiteral "@selected-normal-foreground"; + }; + + "#inputbar" = { + text-color = mkLiteral "@normal-foreground"; + padding = mkLiteral "1px"; + spacing = mkLiteral "0px"; + children = mkLiteral + "[ prompt,textbox-prompt-colon,entry,num-filtered-rows,textbox-num-sep,num-rows,case-indicator ]"; + }; + + "#case-indicator" = { text-color = mkLiteral "@normal-foreground"; }; + + "#entry" = { text-color = mkLiteral "@normal-foreground"; }; + + "#prompt" = { text-color = mkLiteral "@normal-foreground"; }; + + "num-filtered-rows" = { + expand = false; + text-color = mkLiteral (color 8); + }; + + "num-rows" = { + expand = false; + text-color = mkLiteral (color 8); + }; + + "textbox-num-sep" = { + expand = false; + str = "/"; + text-color = mkLiteral (color 8); + }; + + "textbox-prompt-colon" = { + margin = mkLiteral "0 0.3em 0 0"; + expand = false; + str = ":"; + }; + + "entry" = { + text-color = mkLiteral "var(normal-foreground)"; + cursor = mkLiteral "text"; + spacing = 0; + placeholder-color = mkLiteral (color 8); + placeholder = "Type to filter"; + }; + }; + }; + }; +}