Link: https://github.com/nix-community/stylix/pull/1657 Reviewed-by: awwpotato <awwpotato@voidq.com>
149 lines
5.5 KiB
Nix
149 lines
5.5 KiB
Nix
{ mkTarget, config, ... }:
|
|
mkTarget {
|
|
name = "rofi";
|
|
humanName = "Rofi";
|
|
|
|
configElements = [
|
|
(
|
|
{ fonts }:
|
|
{
|
|
programs.rofi.font = "${fonts.monospace.name} ${toString fonts.sizes.popups}";
|
|
}
|
|
)
|
|
(
|
|
{ colors, opacity }:
|
|
let
|
|
inherit (config.lib.formats.rasi) mkLiteral;
|
|
mkRgba =
|
|
opacity': color:
|
|
let
|
|
c = colors;
|
|
r = c."${color}-rgb-r";
|
|
g = c."${color}-rgb-g";
|
|
b = c."${color}-rgb-b";
|
|
in
|
|
mkLiteral "rgba ( ${r}, ${g}, ${b}, ${opacity'} % )";
|
|
mkRgb = mkRgba "100";
|
|
rofiOpacity = toString (builtins.ceil (opacity.popups * 100));
|
|
in
|
|
{
|
|
programs.rofi.theme = {
|
|
"*" = {
|
|
background = mkRgba rofiOpacity "base00";
|
|
lightbg = mkRgba rofiOpacity "base01";
|
|
red = mkRgba rofiOpacity "base08";
|
|
blue = mkRgba rofiOpacity "base0D";
|
|
lightfg = mkRgba rofiOpacity "base06";
|
|
foreground = mkRgba rofiOpacity "base05";
|
|
|
|
background-color = mkRgb "base00";
|
|
separatorcolor = mkLiteral "@foreground";
|
|
border-color = mkLiteral "@foreground";
|
|
selected-normal-foreground = mkLiteral "@lightbg";
|
|
selected-normal-background = mkLiteral "@lightfg";
|
|
selected-active-foreground = mkLiteral "@background";
|
|
selected-active-background = mkLiteral "@blue";
|
|
selected-urgent-foreground = mkLiteral "@background";
|
|
selected-urgent-background = mkLiteral "@red";
|
|
normal-foreground = mkLiteral "@foreground";
|
|
normal-background = mkLiteral "@background";
|
|
active-foreground = mkLiteral "@blue";
|
|
active-background = mkLiteral "@background";
|
|
urgent-foreground = mkLiteral "@red";
|
|
urgent-background = mkLiteral "@background";
|
|
alternate-normal-foreground = mkLiteral "@foreground";
|
|
alternate-normal-background = mkLiteral "@lightbg";
|
|
alternate-active-foreground = mkLiteral "@blue";
|
|
alternate-active-background = mkLiteral "@lightbg";
|
|
alternate-urgent-foreground = mkLiteral "@red";
|
|
alternate-urgent-background = mkLiteral "@lightbg";
|
|
|
|
# Text Colors
|
|
base-text = mkRgb "base05";
|
|
selected-normal-text = mkRgb "base01";
|
|
selected-active-text = mkRgb "base00";
|
|
selected-urgent-text = mkRgb "base00";
|
|
normal-text = mkRgb "base05";
|
|
active-text = mkRgb "base0D";
|
|
urgent-text = mkRgb "base08";
|
|
alternate-normal-text = mkRgb "base05";
|
|
alternate-active-text = mkRgb "base0D";
|
|
alternate-urgent-text = mkRgb "base08";
|
|
};
|
|
|
|
window.background-color = mkLiteral "@background";
|
|
|
|
message.border-color = mkLiteral "@separatorcolor";
|
|
|
|
textbox.text-color = mkLiteral "@base-text";
|
|
|
|
listview.border-color = mkLiteral "@separatorcolor";
|
|
|
|
element-text = {
|
|
background-color = mkLiteral "inherit";
|
|
text-color = mkLiteral "inherit";
|
|
};
|
|
|
|
element-icon = {
|
|
background-color = mkLiteral "inherit";
|
|
text-color = mkLiteral "inherit";
|
|
};
|
|
|
|
"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 normal.active" = {
|
|
background-color = mkLiteral "@active-background";
|
|
text-color = mkLiteral "@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 selected.active" = {
|
|
background-color = mkLiteral "@selected-active-background";
|
|
text-color = mkLiteral "@selected-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 alternate.active" = {
|
|
background-color = mkLiteral "@alternate-active-background";
|
|
text-color = mkLiteral "@alternate-active-text";
|
|
};
|
|
|
|
scrollbar.handle-color = mkLiteral "@normal-foreground";
|
|
sidebar.border-color = mkLiteral "@separatorcolor";
|
|
button.text-color = mkLiteral "@normal-text";
|
|
"button selected" = {
|
|
background-color = mkLiteral "@selected-normal-background";
|
|
text-color = mkLiteral "@selected-normal-text";
|
|
};
|
|
|
|
inputbar.text-color = mkLiteral "@normal-text";
|
|
case-indicator.text-color = mkLiteral "@normal-text";
|
|
entry.text-color = mkLiteral "@normal-text";
|
|
prompt.text-color = mkLiteral "@normal-text";
|
|
|
|
textbox-prompt-colon.text-color = mkLiteral "inherit";
|
|
};
|
|
}
|
|
)
|
|
];
|
|
}
|