nixos-config/home-manager/profiles/fuzzel/default.nix

70 lines
1.5 KiB
Nix
Raw Normal View History

2024-11-28 01:14:34 +08:00
{
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")}";
};
}