Files
nixos-config/home-manager/programs/rofi/rofi.nix

279 lines
8.2 KiB
Nix
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
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";
};
};
};
}