nixos_config/home/modules/programs/rofi/theme.nix
2026-05-22 19:48:24 +02:00

108 lines
4.5 KiB
Nix

{ config, theme, ... }:
let
inherit (config.lib.formats.rasi) mkLiteral;
p = theme.palette;
in
{
programs.rofi.theme = {
"*" = {
background = mkLiteral p.darkestGray;
background-color = mkLiteral p.darkestGray;
foreground = mkLiteral p.lightGray;
lightbg = mkLiteral p.darkerGray;
lightfg = mkLiteral p.lighterGray;
red = mkLiteral p.red;
blue = mkLiteral p.purple;
border-color = mkLiteral "@foreground";
separatorcolor = mkLiteral "@foreground";
normal-background = mkLiteral "@background";
normal-foreground = mkLiteral "@foreground";
normal-text = mkLiteral p.lightGray;
alternate-normal-background = mkLiteral "@lightbg";
alternate-normal-foreground = mkLiteral "@foreground";
alternate-normal-text = mkLiteral p.lightGray;
selected-normal-background = mkLiteral "@lightfg";
selected-normal-foreground = mkLiteral "@lightbg";
selected-normal-text = mkLiteral p.darkerGray;
active-background = mkLiteral "@background";
active-foreground = mkLiteral "@blue";
active-text = mkLiteral p.purple;
alternate-active-background = mkLiteral "@lightbg";
alternate-active-foreground = mkLiteral "@blue";
alternate-active-text = mkLiteral p.purple;
selected-active-background = mkLiteral "@blue";
selected-active-foreground = mkLiteral "@background";
selected-active-text = mkLiteral p.darkestGray;
urgent-background = mkLiteral "@background";
urgent-foreground = mkLiteral "@red";
urgent-text = mkLiteral p.red;
alternate-urgent-background = mkLiteral "@lightbg";
alternate-urgent-foreground = mkLiteral "@red";
alternate-urgent-text = mkLiteral p.red;
selected-urgent-background = mkLiteral "@red";
selected-urgent-foreground = mkLiteral "@background";
selected-urgent-text = mkLiteral p.darkestGray;
base-text = mkLiteral p.lightGray;
};
"button".text-color = mkLiteral "@normal-text";
"button selected" = {
background-color = mkLiteral "@selected-normal-background";
text-color = mkLiteral "@selected-normal-text";
};
"case-indicator".text-color = mkLiteral "@normal-text";
"element alternate.active" = {
background-color = mkLiteral "@alternate-active-background";
text-color = mkLiteral "@alternate-active-text";
};
"element alternate.normal" = {
background-color = mkLiteral "@alternate-normal-background";
text-color = mkLiteral "@alternate-normal-text";
};
"element alternate.urgent" = {
background-color = mkLiteral "@alternate-urgent-background";
text-color = mkLiteral "@alternate-urgent-text";
};
"element normal.active" = {
background-color = mkLiteral "@active-background";
text-color = mkLiteral "@active-text";
};
"element normal.normal" = {
background-color = mkLiteral "@normal-background";
text-color = mkLiteral "@normal-text";
};
"element normal.urgent" = {
background-color = mkLiteral "@urgent-background";
text-color = mkLiteral "@urgent-text";
};
"element selected.active" = {
background-color = mkLiteral "@selected-active-background";
text-color = mkLiteral "@selected-active-text";
};
"element selected.normal" = {
background-color = mkLiteral "@selected-normal-background";
text-color = mkLiteral "@selected-normal-text";
};
"element selected.urgent" = {
background-color = mkLiteral "@selected-urgent-background";
text-color = mkLiteral "@selected-urgent-text";
};
"element-icon" = {
background-color = mkLiteral "inherit";
text-color = mkLiteral "inherit";
};
"element-text" = {
background-color = mkLiteral "inherit";
text-color = mkLiteral "inherit";
};
"entry".text-color = mkLiteral "@normal-text";
"inputbar".text-color = mkLiteral "@normal-text";
"listview".border-color = mkLiteral "@separatorcolor";
"message".border-color = mkLiteral "@separatorcolor";
"prompt".text-color = mkLiteral "@normal-text";
"scrollbar".handle-color = mkLiteral "@normal-foreground";
"sidebar".border-color = mkLiteral "@separatorcolor";
"textbox".text-color = mkLiteral "@base-text";
"textbox-prompt-colon".text-color = mkLiteral "inherit";
"window".background-color = mkLiteral "@background";
};
}