279 lines
8.2 KiB
Nix
279 lines
8.2 KiB
Nix
{
|
||
config,
|
||
pkgs,
|
||
configPath,
|
||
...
|
||
}:
|
||
|
||
{
|
||
programs.rofi = {
|
||
enable = true;
|
||
terminal = "ghostty";
|
||
package = pkgs.rofi-wayland.override {
|
||
plugins = [ pkgs.rofi-emoji-wayland ];
|
||
};
|
||
font = "JetBrainsMono Nerd Font 12";
|
||
plugins = [
|
||
pkgs.rofi-emoji-wayland
|
||
pkgs.rofi-calc
|
||
pkgs.rofi-games
|
||
pkgs.rofi-file-browser
|
||
];
|
||
extraConfig = {
|
||
modi = "drun,run,filebrowser,emoji";
|
||
show-icons = true;
|
||
display-drun = "Apps";
|
||
display-run = "Run";
|
||
display-filebrowser = "Files";
|
||
drun-display-format = "{name}";
|
||
hover-select = true;
|
||
me-select-entry = "MouseSecondary";
|
||
me-accept-entry = "MousePrimary";
|
||
window-format = "{w} · {c} · {t}";
|
||
dpi = 1;
|
||
};
|
||
theme =
|
||
let
|
||
inherit (config.lib.formats.rasi) mkLiteral;
|
||
in
|
||
{
|
||
"*" = {
|
||
active-background = mkLiteral "#101C2F";
|
||
active-foreground = mkLiteral "#D6CBD5";
|
||
normal-background = mkLiteral "#030508";
|
||
normal-foreground = mkLiteral "#D6CBD5";
|
||
urgent-background = mkLiteral "#2B7F48";
|
||
urgent-foreground = mkLiteral "#D6CBD5";
|
||
alternate-active-background = mkLiteral "#11606B";
|
||
alternate-active-foreground = mkLiteral "#D6CBD5";
|
||
alternate-normal-background = mkLiteral "#030508";
|
||
alternate-normal-foreground = mkLiteral "#D6CBD5";
|
||
alternate-urgent-background = mkLiteral "#030508";
|
||
alternate-urgent-foreground = mkLiteral "#D6CBD5";
|
||
selected-active-background = mkLiteral "#101C2F";
|
||
selected-active-foreground = mkLiteral "#D6CBD5";
|
||
selected-normal-background = mkLiteral "#BCADBB";
|
||
selected-normal-foreground = mkLiteral "#D6CBD5";
|
||
selected-urgent-background = mkLiteral "#2B7F48";
|
||
selected-urgent-foreground = mkLiteral "#D6CBD5";
|
||
background-color = mkLiteral "#030508";
|
||
background = mkLiteral "rgba(32,32,32,0.7)";
|
||
foreground = mkLiteral "#BCADBB";
|
||
border-color = mkLiteral "#101C2F";
|
||
|
||
background-alt = mkLiteral "@selected-active-background";
|
||
selected = mkLiteral "@selected-urgent-background";
|
||
active = mkLiteral "@selected-normal-background";
|
||
urgent = mkLiteral "@selected";
|
||
text-selected = mkLiteral "@background";
|
||
text-color = mkLiteral "@foreground";
|
||
};
|
||
|
||
"window" = {
|
||
enabled = true;
|
||
fullscreen = false;
|
||
transparency = mkLiteral "\"real\"";
|
||
cursor = mkLiteral "\"default\"";
|
||
spacing = 0;
|
||
border = mkLiteral "4px 0px 4px 0px";
|
||
border-radius = 30;
|
||
location = mkLiteral "center";
|
||
anchor = mkLiteral "center";
|
||
width = mkLiteral "50%";
|
||
background-color = mkLiteral "@background";
|
||
};
|
||
|
||
"mainbox" = {
|
||
padding = 15;
|
||
enabled = true;
|
||
orientation = mkLiteral "vertical";
|
||
children = map mkLiteral [
|
||
"inputbar"
|
||
"listbox"
|
||
];
|
||
background-color = mkLiteral "transparent";
|
||
};
|
||
|
||
"inputbar" = {
|
||
enabled = true;
|
||
padding = mkLiteral "10px 10px 100px 10px";
|
||
margin = 10;
|
||
background-color = mkLiteral "transparent";
|
||
border-radius = 25;
|
||
orientation = mkLiteral "horizontal";
|
||
children = map mkLiteral [
|
||
"entry"
|
||
"dummy"
|
||
"mode-switcher"
|
||
];
|
||
background-image = mkLiteral "url(\"${configPath}/assets/background.png\", width)";
|
||
};
|
||
|
||
"entry" = {
|
||
enabled = true;
|
||
expand = false;
|
||
width = mkLiteral "20%";
|
||
padding = 10;
|
||
border-radius = 12;
|
||
background-color = mkLiteral "@selected";
|
||
text-color = mkLiteral "@text-selected";
|
||
cursor = mkLiteral "text";
|
||
placeholder = mkLiteral "\"🖥️ Search \"";
|
||
placeholder-color = mkLiteral "inherit";
|
||
};
|
||
|
||
"listbox" = {
|
||
spacing = 10;
|
||
padding = 10;
|
||
background-color = mkLiteral "transparent";
|
||
orientation = mkLiteral "vertical";
|
||
children = map mkLiteral [
|
||
"message"
|
||
"listview"
|
||
];
|
||
};
|
||
|
||
"listview" = {
|
||
enabled = true;
|
||
columns = 2;
|
||
lines = 6;
|
||
cycle = true;
|
||
dynamic = true;
|
||
scrollbar = true;
|
||
layout = mkLiteral "vertical";
|
||
reverse = false;
|
||
fixed-height = false;
|
||
fixed-columns = true;
|
||
spacing = 10;
|
||
background-color = mkLiteral "transparent";
|
||
border = 0;
|
||
};
|
||
|
||
"dummy" = {
|
||
expand = true;
|
||
background-color = mkLiteral "transparent";
|
||
};
|
||
|
||
"mode-switcher" = {
|
||
enabled = true;
|
||
spacing = 10;
|
||
background-color = mkLiteral "transparent";
|
||
};
|
||
|
||
"button" = {
|
||
width = mkLiteral "5%";
|
||
padding = 12;
|
||
border-radius = 12;
|
||
background-color = mkLiteral "@text-selected";
|
||
text-color = mkLiteral "@text-color";
|
||
cursor = mkLiteral "pointer";
|
||
};
|
||
|
||
"button selected" = {
|
||
background-color = mkLiteral "@selected";
|
||
text-color = mkLiteral "@text-selected";
|
||
};
|
||
|
||
"scrollbar" = {
|
||
width = 4;
|
||
border = 0;
|
||
handle-color = mkLiteral "@border-color";
|
||
handle-width = 8;
|
||
padding = 0;
|
||
};
|
||
|
||
"element" = {
|
||
enabled = true;
|
||
spacing = 10;
|
||
padding = 10;
|
||
border-radius = 12;
|
||
background-color = mkLiteral "transparent";
|
||
cursor = mkLiteral "pointer";
|
||
};
|
||
|
||
"element normal.normal" = {
|
||
background-color = mkLiteral "inherit";
|
||
text-color = mkLiteral "inherit";
|
||
};
|
||
|
||
"element normal.urgent" = {
|
||
background-color = mkLiteral "@urgent";
|
||
text-color = mkLiteral "@foreground";
|
||
};
|
||
|
||
"element normal.active" = {
|
||
background-color = mkLiteral "@active";
|
||
text-color = mkLiteral "@foreground";
|
||
};
|
||
|
||
"element selected.normal" = {
|
||
border = mkLiteral "1px 6px 1px 6px";
|
||
border-radius = 16;
|
||
border-color = mkLiteral "@selected";
|
||
background-color = mkLiteral "transparent";
|
||
text-color = mkLiteral "@selected";
|
||
};
|
||
|
||
"element selected.urgent" = {
|
||
background-color = mkLiteral "@urgent";
|
||
text-color = mkLiteral "@text-selected";
|
||
};
|
||
|
||
"element selected.active" = {
|
||
background-color = mkLiteral "@urgent";
|
||
text-color = mkLiteral "@text-selected";
|
||
};
|
||
|
||
"element alternate.normal" = {
|
||
background-color = mkLiteral "transparent";
|
||
text-color = mkLiteral "inherit";
|
||
};
|
||
|
||
"element alternate.urgent" = {
|
||
background-color = mkLiteral "transparent";
|
||
text-color = mkLiteral "inherit";
|
||
};
|
||
|
||
"element alternate.active" = {
|
||
background-color = mkLiteral "transparent";
|
||
text-color = mkLiteral "inherit";
|
||
};
|
||
|
||
"element-icon" = {
|
||
background-color = mkLiteral "transparent";
|
||
text-color = mkLiteral "inherit";
|
||
cursor = mkLiteral "inherit";
|
||
};
|
||
|
||
"element-text" = {
|
||
background-color = mkLiteral "transparent";
|
||
text-color = mkLiteral "inherit";
|
||
cursor = mkLiteral "inherit";
|
||
vertical-align = mkLiteral "0.5";
|
||
horizontal-align = mkLiteral "0.0";
|
||
};
|
||
|
||
"message" = {
|
||
background-color = mkLiteral "transparent";
|
||
border = 0;
|
||
};
|
||
|
||
"textbox" = {
|
||
padding = 12;
|
||
border-radius = 10;
|
||
background-color = mkLiteral "@background-alt";
|
||
text-color = mkLiteral "@background";
|
||
vertical-align = mkLiteral "0.5";
|
||
horizontal-align = mkLiteral "0.0";
|
||
};
|
||
|
||
"error-message" = {
|
||
padding = 12;
|
||
border-radius = 20;
|
||
background-color = mkLiteral "@background-alt";
|
||
text-color = mkLiteral "@background";
|
||
};
|
||
};
|
||
};
|
||
}
|