rofi: reimplement theme
Some checks are pending
nix-build / default-build (push) Waiting to run
nix-build / fallarbor-build (push) Waiting to run
nix-build / lavaridge-build (push) Waiting to run
nix-build / mauville-build (push) Waiting to run
nix-build / petalburg-build (push) Waiting to run
nix-build / rustboro-build (push) Waiting to run
nix-check / fmt-check (push) Waiting to run
nix-check / eval-check (push) Waiting to run

This commit is contained in:
Aly Raffauf 2024-08-15 00:45:27 -04:00
parent 949cecda10
commit 4e4f201caa
2 changed files with 185 additions and 0 deletions

View file

@ -5,6 +5,18 @@
... ...
}: let }: let
cfg = config.ar.home; cfg = config.ar.home;
inherit (config.lib.formats.rasi) mkLiteral;
mkRgba = opacity: color: let
c = config.lib.stylix.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 = builtins.toString (builtins.ceil (config.stylix.opacity.popups * 100));
in { in {
config = lib.mkIf cfg.apps.rofi.enable { config = lib.mkIf cfg.apps.rofi.enable {
home.packages = [ home.packages = [
@ -13,8 +25,11 @@ in {
pkgs.rofi-rbw-wayland pkgs.rofi-rbw-wayland
]; ];
stylix.targets.rofi.enable = false;
programs.rofi = { programs.rofi = {
enable = true; enable = true;
font = "${config.stylix.fonts.monospace.name} ${toString config.stylix.fonts.sizes.popups}";
location = "center"; location = "center";
package = pkgs.rofi-wayland; package = pkgs.rofi-wayland;
@ -24,6 +39,168 @@ in {
]; ];
terminal = lib.getExe cfg.defaultApps.terminal; terminal = lib.getExe cfg.defaultApps.terminal;
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";
border = 4;
};
message = {
border-color = mkLiteral "@separatorcolor";
border = mkLiteral "2px solid 0px 0px";
padding = 1;
};
textbox.text-color = mkLiteral "@base-text";
listview = {
border-color = mkLiteral "@separatorcolor";
border = mkLiteral "2px solid 0px 0px";
spacing = 4;
scrollbar = false;
};
element = {
border = 0;
padding = 5;
};
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" = {
expand = false;
margin = mkLiteral "0px 0.3em 0em 0em";
str = ":";
text-color = mkLiteral "inherit";
};
case-indicator.spacing = 0;
entry.spacing = 0;
prompt = {
spacing = 0;
margin = mkLiteral "1px";
};
"#inputbar" = {
children = map mkLiteral ["prompt" "textbox-prompt-colon" "entry" "case-indicator"];
padding = 10;
};
mode-switcher = {
border = mkLiteral "2px solid 0px 0px";
border-color = mkLiteral "@separatorcolor";
};
};
extraConfig = { extraConfig = {
case-sensitive = false; case-sensitive = false;
@ -66,6 +243,13 @@ in {
clear-after 60 clear-after 60
''; '';
# "rofi/theme.rasi".text = ''
# mainbox {
# border: 0;
# padding: 0;
# }
# '';
"networkmanager-dmenu/config.ini".text = '' "networkmanager-dmenu/config.ini".text = ''
[dmenu] [dmenu]
dmenu_command = ${lib.getExe config.programs.rofi.package} dmenu_command = ${lib.getExe config.programs.rofi.package}

View file

@ -44,6 +44,7 @@
applications = 0.8; applications = 0.8;
desktop = 0.8; desktop = 0.8;
terminal = 0.8; terminal = 0.8;
popups = 0.8;
}; };
}; };
} }