70 lines
1.5 KiB
Nix
70 lines
1.5 KiB
Nix
|
{
|
||
|
config,
|
||
|
pkgs,
|
||
|
lib,
|
||
|
...
|
||
|
}:
|
||
|
let
|
||
|
mkTheme =
|
||
|
mode:
|
||
|
let
|
||
|
inherit (config.theme.${mode}.base24Theme)
|
||
|
base00
|
||
|
base04
|
||
|
base05
|
||
|
base08
|
||
|
base0D
|
||
|
;
|
||
|
in
|
||
|
(pkgs.formats.ini { }).generate "fuzzel-theme-${mode}.ini" {
|
||
|
colors = {
|
||
|
background = "${base00}dd";
|
||
|
text = "${base05}ff";
|
||
|
match = "${base08}ff";
|
||
|
selection = "${base04}ff";
|
||
|
selection-text = "${base05}ff";
|
||
|
selection-match = "${base08}ff";
|
||
|
border = "${base0D}ff";
|
||
|
};
|
||
|
};
|
||
|
in
|
||
|
{
|
||
|
programs.fuzzel = {
|
||
|
enable = true;
|
||
|
settings = {
|
||
|
main = {
|
||
|
fields = "filename,name,generic,exec,keywords";
|
||
|
font = "monospace:size=11";
|
||
|
dpi-aware = "no";
|
||
|
layer = "overlay";
|
||
|
};
|
||
|
border = {
|
||
|
width = "2";
|
||
|
radius = "0";
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
programs.fuzzel.settings.main.include = "~/.config/fuzzel/theme.ini";
|
||
|
|
||
|
systemd.user.tmpfiles.rules = [
|
||
|
"L %h/.config/fuzzel/theme.ini - - - - ${mkTheme "light"}"
|
||
|
];
|
||
|
|
||
|
services.darkman =
|
||
|
let
|
||
|
mkScript =
|
||
|
mode:
|
||
|
pkgs.writeShellApplication {
|
||
|
name = "darkman-switch-fuzzel-${mode}";
|
||
|
text = ''
|
||
|
ln --force --symbolic --verbose "${mkTheme mode}" "$HOME/.config/fuzzel/theme.ini"
|
||
|
'';
|
||
|
};
|
||
|
in
|
||
|
{
|
||
|
lightModeScripts.fuzzel = "${lib.getExe (mkScript "light")}";
|
||
|
darkModeScripts.fuzzel = "${lib.getExe (mkScript "dark")}";
|
||
|
};
|
||
|
}
|