nixcfg/homeManagerModules/services/swayosd/default.nix

76 lines
1.8 KiB
Nix
Raw Normal View History

{
config,
lib,
pkgs,
...
}: let
cfg = config.ar.home;
in {
config = lib.mkIf cfg.services.swayosd.enable {
home.packages = with pkgs; [
swayosd
];
services.swayosd = {
enable = lib.mkDefault true;
stylePath = "${config.xdg.configHome}/swayosd/style.css";
};
systemd.user.services.swayosd = {
Install.WantedBy = lib.mkForce ["hyprland-session.target" "sway-session.target"];
Service.Restart = lib.mkForce "no";
Unit.BindsTo = ["hyprland-session.target" "sway-session.target"];
};
xdg.configFile."swayosd/style.css" = {
text = ''
window#osd {
padding: 12px 20px;
border-radius: ${toString cfg.theme.borderRadius}px;
border: 4px solid alpha(${cfg.theme.colors.primary}, 0.8);
background: alpha(${cfg.theme.colors.background}, 0.8);
}
window#osd #container {
margin: 16px;
}
window#osd image,
window#osd label {
color: ${cfg.theme.colors.secondary};
}
window#osd progressbar:disabled,
window#osd image:disabled {
opacity: 0.5;
}
window#osd progressbar {
min-height: 6px;
border-radius: 999px;
background: transparent;
border: none;
}
window#osd trough {
min-height: inherit;
border-radius: inherit;
border: none;
background: alpha(${cfg.theme.colors.secondary}, 0.5);
}
window#osd progress {
min-height: inherit;
border-radius: inherit;
border: none;
background: ${cfg.theme.colors.secondary};
}
'';
onChange = ''
${lib.getExe' pkgs.systemd "systemctl"} restart --user swayosd
'';
};
};
}