Files
TheaninovOS/modules/nixos/shell/swaync.nix
2025-05-04 12:57:55 +02:00

66 lines
1.7 KiB
Nix

{
config,
lib,
username,
...
}:
let
cfg = config.shell.components.swaync;
in
{
options.shell.components.swaync = {
enable = lib.mkEnableOption (lib.mdDoc "Enable a pre-configured notification center");
};
config = lib.mkIf cfg.enable {
home-manager.users.${username} = {
services.swaync = {
enable = true;
settings = {
positionX = "center";
positionY = "top";
fit-to-screen = false;
control-center-width = 600;
control-center-height = 800;
control-center-margin-top = 2;
control-center-margin-bottom = 2;
control-center-margin-right = 1;
control-center-margin-left = 0;
notification-window-width = 400;
notification-icon-size = 48;
notification-body-image-height = 160;
notification-body-image-width = 200;
image-visibility = "when-available";
};
};
programs.waybar.settings.mainBar = {
modules-center = lib.mkAfter [
"custom/notification"
];
"custom/notification" = {
tooltip = false;
format = "{icon}";
format-icons = {
notification = "󰂚";
none = "󰂜";
dnd-notification = "󰂠";
dnd-none = "󰪓";
inhibited-notification = "󰂛";
inhibited-none = "󰪑";
dnd-inhibited-notification = "󰂛";
dnd-inhibited-none = "󰪑";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
};
};
};
};
}