{ lib, config, ... }: let cfg = config.marleyos.services.swaync; in { options.marleyos.services.swaync.enable = lib.mkEnableOption "swaync"; config = lib.mkIf cfg.enable { services.swaync = { enable = true; settings = { positionX = "right"; positionY = "top"; layer = "overlay"; control-center-layer = "top"; layer-shell = true; cssPriority = "application"; control-center-margin-top = 10; control-center-margin-bottom = 10; control-center-margin-right = 10; control-center-margin-left = 10; notification-2fa-action = true; notification-inline-replies = false; notification-icon-size = 64; notification-body-image-height = 100; notification-body-image-width = 200; timeout = 10; timeout-low = 5; timeout-critical = 0; fit-to-screen = true; control-center-width = 500; control-center-height = 1025; notification-window-width = 500; keyboard-shortcuts = true; image-visibility = "when-available"; transition-time = 200; hide-on-clear = false; hide-on-action = true; script-fail-notify = true; widgets = [ "title" "mpris" "volume" "dnd" "notifications" ]; widget-config = { title = { text = "Notification Center"; clear-all-button = true; button-text = "󰆴 clear all"; }; dnd = { text = "do not disturb"; }; label = { max-lines = 1; text = "Notification Center"; }; mpris = { image-size = 96; image-radius = 7; }; volume = { label = "󰕾"; }; }; }; }; }; }