{ inputs, config, lib, pkgs, ... }: let cfg = config.samfelag.modules.desktop.tools.swaync; hyprCfg = config.samfelag.modules.desktop.wm.hyprland; in { options.samfelag.modules.desktop.tools.swaync = with lib; { enable = mkEnableOption "Sway Notification Center"; }; config = lib.mkIf cfg.enable { environment.systemPackages = with pkgs; [ libnotify swaynotificationcenter ]; hm.services.swaync = { enable = true; settings = { widgets = [ "title" "dnd" "notifications" ]; widget-config = { dnd = { text = "Silence"; }; title = { text = "Notifications"; clear-all-button = true; button-text = "󰆴"; }; }; }; style = '' * { font-family: Iosevka; color: #${config.colorScheme.palette.base05}; } .notification { border-width: 2px; padding: 2px 4px; background-color: #${config.colorScheme.palette.base00}; color: #${config.colorScheme.palette.base05}; } .notification-content { background-color: inherit; color: inherit; } .critical.notification { background-color: #${config.colorScheme.palette.base0C}; } .image { margin: 5px; padding-right: 5px; } .control-center { margin: 30px; margin-left: 0px; border-radius: 10px; border: solid #${config.colorScheme.palette.base05} 1px; background-color: #${config.colorScheme.palette.base01}; color: #${config.colorScheme.palette.base05}; opacity: 0.95; } .control-center-clear-all { background: #${config.colorScheme.palette.base02}; } .control-center-dnd:checked { background: #${config.colorScheme.palette.base08}; } .close-button { background: #${config.colorScheme.palette.base08}; } .notification-group-collapse-button { margin: 4px; box-shadow: none; background: #${config.colorScheme.palette.base0A}; } .notification-group-close-all-button { margin: 4px; box-shadow: none; background: #${config.colorScheme.palette.base08}; } ''; }; # - Execute on startup ----------------------- hm.wayland.windowManager.hyprland.settings = lib.mkIf hyprCfg.enable { exec-once = [ "swaync" ]; layerrule = [ "animation slide top, swaync-control-center" "animation slide top, swaync-notification-window" ]; bind = [ # Notification center "${hyprCfg.mod}, n, exec, swaync-client -t -sw" ]; }; }; }