nixos-config/user/rofi.nix
2024-05-31 11:41:21 -03:00

97 lines
2.5 KiB
Nix

{
config,
pkgs,
lib,
font,
...
}:
let
inherit (pkgs.uservars)
key
theme
accent
font
;
inherit (theme) color;
in
{
config = {
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland.override {
plugins = with pkgs; [
rofi-emoji
rofi-file-browser
];
};
extraConfig = {
show-icons = true;
modi = "drun,emoji";
terminal = "alacritty";
display-drun = "Iniciar: ";
kb-primary-paste = "Control+V,Shift+Insert";
kb-secondary-paste = "Control+v,Insert";
};
theme =
let
# Use `mkLiteral` for string-like values that should show without
# quotes, e.g.:
# {
# foo = "abc"; => foo: "abc";
# bar = mkLiteral "abc"; => bar: abc;
# };
inherit (config.lib.formats.rasi) mkLiteral;
in
{
"*" = {
# foreground-color = mkLiteral color.txt;
text-color = mkLiteral color.txt;
# background-color = mkLiteral color.bg;
background-color = mkLiteral "transparent";
# width = 512;
};
"#window" = {
background-color = mkLiteral "${color.bg}${lib.toHexString (theme.opacity * 255 / 100)}";
# children = map mkLiteral [ "prompt" "entry" ];
border = mkLiteral "2px solid";
border-color = mkLiteral accent.color;
padding = 0;
};
"#inputbar" = {
margin = mkLiteral "10px";
};
"#listview" = {
# fixed-height=0;
border = mkLiteral "2px solid 0px 0px";
# border-color = mkLiteral "@separatorcolor";
# spacing= 0 ;
};
# "#textbox-prompt-colon" = {
# expand = false;
# str = ":";
# margin = mkLiteral "0px 0.3em 0em 0em";
# text-color = mkLiteral "@foreground-color";
# };
"#element" = {
# text-color = mkLiteral "#252525";
background-color = mkLiteral "transparent";
padding = mkLiteral "3px 10px";
};
"#element selected" = {
# text-color = mkLiteral "#252525";
background-color = mkLiteral accent.color;
};
element-icon = {
# background-color= inherit;
# text-color= inherit;
margin-right = mkLiteral "20px";
size = 24;
};
};
};
};
}