swaync(5) File Formats Manual swaync(5) (NAME) swaync - SwayNC (CONFIGURATION) JSON ignore-gtk-theme type: bool default: true description: GTK_THEME GTK CSS . positionX type: string default: right values: left, right, center description: positionY type: string default: top values: top, center, bottom description: layer type: string default: overlay values: background, bottom, top, overlay description: . background overlay . layer-shell type: bool default: true description: layer- shell. : swaync cssPriority type: string default: application values: application, user description: GTK CSS . "user" ?BXDG_CONFIG_HOME/gtk-3.0/gtk.css?R control-center-positionX type: string default: right values: left, right, center description: : . `none` positionX . control-center-positionY type: string default: top values: top, center, bottom description: : . `none` positionY . control-center-margin-top type: integer default: 0 description: ( ) . 0 control-center-margin-bottom type: integer default: 0 description: ( ) . 0 control-center-margin-right type: integer default: 0 description: ( ) . 0 control-center-margin-left type: integer default: 0 description: ( ) . 0 control-center-layer type: string default: top values: background, bottom, top, overlay description: . background overlay . control-center-exclusive-zone type: bool default: true description: (exclusive zones) . ?Bfalse?R / . notification-2fa-action type: bool default: true description: 'COPY "1234"' timeout type: integer default: 10 description: timeout-low type: integer default: 5 description: timeout-critical type: integer default: 0 description: . 0 notification-window-width type: integer default: 500 description: notification-window-height type: integer default: -1 description: . -1 . notification-window-preferred-output type: string default: "" description: ( ). ( "DP-1") ( "Acer Technologies XV272U V 503023B314202") . . keyboard-shortcuts type: bool default: true description: notification-grouping type: bool default: true description: image-visibility type: string default: always values: always, when-available, never description: : (always) (when-available) (never). transition-time type: integer default: 200 description: . 0 hide-on-clear type: bool default: false description: "Clear All" hide-on-action type: bool default: true description: text-empty type: string default: "No Notifications" description: fit-to-screen type: bool default: true description: relative-timestamps type: bool default: true description: "26 minutes ago". false iso8601 . control-center-height type: integer default: 500 description: . -1 . 'fit-to-screen' 'true' . control-center-width type: integer default: 500 description: control-center-preferred-output type: string default: "" description: . ( "DP-1") ( "Acer Technologies XV272U V 503023B314202") . . notification-action-filter type: object visibility object properties: use-regex type: bool optional: true default: false description: . app-name type: string optional: true description: . desktop-entry type: string optional: true description: . id-matcher type: string optional: true ( ?Bmatcher?R) description: . swaync ?BG_MESSAGES_DEBUG=all?R . text-matcher type: string optional: true ( ?Bmatcher?R) description: . description: () . . . example: { "notification-action-filter": { "hide-chromium-settings": { "desktop-entry": "chromium-browser", "use-regex": false, "id-matcher": "settings", "text-matcher": "Settings" } }, } notification-visibility type: object visibility object properties: state type: string optional: false default: enabled values: ignored, muted, transient, enabled description: . override-urgency type: string optional: true default: unset values: unset, low, normal, critical description: . app-name type: string optional: true description: . . desktop-entry type: string optional: true description: . . summary type: string optional: true description: . . body type: string optional: true description: . . urgency type: string optional: true default: Normal values: Low, Normal, Critical description: . category type: string optional: true description: . . description: . . ( state) . . . example: { "notification-visibility": { "example-name": { "state": "The notification state", "app-name": "Notification app-name Regex", "summary": "Notification summary Regex", "body": "Notification body Regex", "urgency": "Low or Normal or Critical", "category": "Notification category Regex" } } } widgets type: array Default values: ["title", "dnd", "notifications"] ( ?Bwidget-config?R ): notifications : true : false title optional: true dnd optional: true label optional: true mpris optional: true menubar optional: true buttons-grid optional: true slider optional: true volume optional: true backlight optional: true inhibitors optional: true description: . "notifications" . : # . : "title#TheMainTitle". css css .TheMainTitle example: { "widgets": [ "inhibitors", "title", "dnd", "notifications" ] } widget-config type: object description: . : # . : "title#TheMainTitle". css css .TheMainTitle : notifications type: object css class: widget-notifications properties: vexpand: type: bool optional: true default: true description: description: . title type: object css class: widget-title properties: text: type: string optional: true default: "Notifications" description: clear-all-button: type: bool optional: true default: true description: "Clear All" button-text: type: string optional: true default: "Clear All" description: "Clear All" description: . dnd type: object css class: widget-dnd properties: text: type: string optional: true default: "Do Not Disturb" description: description: (Do Not Disturb) . label type: object css class: widget-label properties: text: type: string optional: true default: "Label Text" description: clear-all-button: type: integer optional: true default: 5 description: description: . mpris type: object css classes: widget-mpris widget-mpris-player widget-mpris-title widget-mpris-subtitle properties: blacklist: type: array optional: true default: [] description: mpris . : type: string description: /. . : `$ qdbus | grep mpris` . autohide: type: bool optional: true default: false description: . show-album-art: type: string optional: true default: "always" description: . enum: ["right", "left"] loop-carousel: type: bool optional: true default: false description: mpris. description: . menubar type: object css classes: widget-menubar menu buttons # patternProperties: menu#: type: object properties: label: type: string optional: true default: "Menu" description: / position: type: string optional: true default: "right" description: enum: ["right", "left"] animation-type: type: string optional: true default: "slide_down" description: enum: ["slide_down", "slide_up", "none"] animation-duration: type: integer optional: true default: 250 description: actions: type: array Default values: [] : type: object properties: label: type: string default: "label" description: command: type: string default: "" description: " " type: type: string default: "normal" description: . css '.active' enum: ["normal", "toggle"] update-command: type: string default: "" description: " ( true false )" active: type: bool default: false description: description: description: buttons#: type: object properties: position: type: string optional: true default: "right" description: enum: ["right", "left"] actions: type: array Default values: [] : type: object properties: label: type: string default: "label" description: command: type: string default: "" description: " " type: type: string default: "normal" description: css '.active' "SWAYNC_TOGGLE_STATE" . config.json enum: ["normal", "toggle"] update-command: type: string default: "" description: " ( true false )" active: type: bool default: false description: description: description: buttons-grid type: object css class: widget-buttons ( >flowbox>flowboxchild>button) properties: buttons-per-row: type: number actions: type: array Default values: [] : type: object properties: label: type: string default: "label" description: command: type: string default: "" description: " " type: type: string default: "normal" description: css '.active' "SWAYNC_TOGGLE_STATE" . config.json enum: ["normal", "toggle"] active: type: bool default: false description: description: description: slider type: object css class: widget-slider properties: label: type: string optional: true default: "slider" description: cmd_setter: type: string optional: true default: "" description: . $value . cmd_getter: type: string optional: true default: "" description: . $value . min: type: integer optional: true default: 0 description: max: type: integer optional: true default: 100 description: min_limit: type: integer optional: true default: 0 description: max_limit: type: integer optional: true default: 100 description: value_scale: type: integer optional: true default: 0 description: description: volume type: object css class: widget-volume per-app-volume properties: label: type: string optional: true default: "Volume" description: show-per-app: type: bool optional: true default: false description: show-per-app-icon: type: bool optional: true default: false description: show-per-app-label: type: bool optional: true default: false description: expand-per-app: type: bool optional: true default: false description: empty-list-label: type: string optional: true default: "No active sink input" description: expand-button-label: type: string optional: true default: "" description: collapse-button-label: type: string optional: true default: "" description: animation-type: type: string optional: true default: "slide_down" description: enum: ["slide_down", "slide_up", "none"] animation-duration: type: integer optional: true default: 250 description: description: (PulseAudio) backlight type: object css class: widget-backlight properties: label: type: string optional: true default: "Brightness" description: device: type: string optional: true default: "intel_backlight" description: `/sys/class/backlight` `/sys/class/leds` subsystem: type: string optional: true default: "backlight" description: enum: ["backlight", "leds"] min: type: integer optional: true default: 0 description: description: inhibitors type: object css class: widget-inhibitors properties: text: type: string optional: true default: "Inhibitors" description: clear-all-button: type: bool optional: true default: true description: "Clear All" button-text: type: string optional: true default: "Clear All" description: "Clear All" description: . example: { "widget-config": { "title": { "text": "Notifications", "clear-all-button": true, "button-text": "Clear All" }, "dnd": { "text": "Do Not Disturb" }, "label": { "max-lines": 5, "text": "Label Text" }, "mpris": { "blacklist": ["playerctld"], "autohide": true, "show-album-art": "always", "loop-carousel": false }, "menubar": { "menu#power": { "label": "Power", "position": "right", "actions": [ { "label": "Shut down", "command": "systemctl poweroff" }, ... ] }, "buttons#screenshot": { "position": "left", "actions": [ { "label": "Screenshot", "command": "grim" }, ... ] } }, "buttons": { "actions": [ { "label": "wifi", "command": "rofi-wifi-menu" }, ... ] } } } (SCRIPTS) script-fail-notify type: bool default: true description: scripts type: object : exec type: string optional: false description: . . app-name type: string optional: true description: . . desktop-entry type: string optional: true description: . . summary type: string optional: true description: . . body type: string optional: true description: . . urgency type: string optional: true default: Normal values: Low, Normal, Critical description: . category type: string optional: true description: . . sound-file type: string optional: true description: . . sound-name type: string optional: true description: . . run-on type: string optional: true values: action, receive default: receive description: . description: . . ( exec) . . . example: { "scripts": { "example-script": { "exec": "Your shell command or script here...", "app-name": "Notification app-name Regex", "summary": "Notification summary Regex", "body": "Notification body Regex", "urgency": "Low or Normal or Critical", "category": "Notification category Regex" } } } : $SWAYNC_BODY=" " $SWAYNC_DESKTOP_ENTRY=" " $SWAYNC_URGENCY=" " $SWAYNC_TIME=" " $SWAYNC_APP_NAME=" " $SWAYNC_CATEGORY=" SwayNC" $SWAYNC_REPLACES_ID=" " $SWAYNC_ID=" SwayNC" $SWAYNC_SUMMARY=" " $SWAYNC_HINT_[NAME]=" [NAME]" $SWAYNC_SOUND_NAME=" " $SWAYNC_SOUND_FILE=" " 2026-03-23 swaync(5)