Provided by: sway-notification-center_0.10.1-2_amd64 bug

NAME

       swaync - Configuration file

CONFIGURATION

       Using a text editor with a JSON language server is recommended when editing the config
       file to be able to detect config errors

       positionX
            type: string
            default: right
            values: left, right, center
            description: Horizontal position of control center and notification window

       positionY
            type: string
            default: top
            values: top, center, bottom
            description: Vertical position of control center and notification window

       layer
            type: string
            default: overlay
            values: background, bottom, top, overlay
            description: Layer of notification window relative to normal windows.
                 background is below all windows, overlay is above all windows.

       layer-shell
            type: bool
            default: true
            description: Wether or not the windows should be opened as layer-shell
                 surfaces. Note: Requires swaync restart to apply

       cssPriority
            type: string
            default: application
            values: application, user
            description: Which GTK priority to use when loading the default and user
                 CSS files. Pick "user" to override XDG_CONFIG_HOME/gtk-3.0/gtk.css

       control-center-margin-top
            type: integer
            default: 0
            description: The margin (in pixels) at the top of the notification center. 0 to
       disable

       control-center-margin-bottom
            type: integer
            default: 0
            description: The margin (in pixels) at the bottom of the notification center. 0 to
       disable

       control-center-margin-right
            type: integer
            default: 0
            description: The margin (in pixels) at the right of the notification center. 0 to
       disable

       control-center-margin-left
            type: integer
            default: 0
            description: The margin (in pixels) at the left of the notification center. 0 to
       disable

       control-center-layer
            type: string
            default: top
            values: background, bottom, top, overlay
            description: Layer of control center window relative to normal windows.
                 background is below all windows, overlay is above all windows.

       control-center-exclusive-zone
            type: bool
            default: true
            description: Whether or not the control center should follow the
                 compositors exclusive zones. An example would be setting it to
                 false to cover your panel/dock.

       notification-2fa-action
            type: bool
            default: true
            description: If each notification should display a 'COPY "1234"' action

       timeout
            type: integer
            default: 10
            description: The notification timeout for notifications with normal priority

       timeout-low
            type: integer
            default: 5
            description: The notification timeout for notifications with low priority

       timeout-critical
            type: integer
            default: 0
            description: The notification timeout for notifications with critical priority. 0 to
       disable

       notification-window-width
            type: integer
            default: 500
            description: Width of the notification in pixels

       keyboard-shortcuts
            type: bool
            default: true
            description: If control center should use keyboard shortcuts

       image-visibility
            type: string
            default: always
            values: always, when-available, never
            description: An explanation about the purpose of this instance.

       transition-time
            type: integer
            default: 200
            description: The notification animation duration. 0 to disable

       hide-on-clear
            type: bool
            default: false
            description: Hides the control center after pressing "Clear All"

       hide-on-action
            type: bool
            default: true
            description: Hides the control center when clicking on notification action

       fit-to-screen
            type: bool
            default: true
            description: Whether the control center should expand vertically to fill the screen

       relative-timestamps
            type: bool
            default: true
            description: Display notification timestamps relative to now e.g. "26 minutes ago".
                 If false, a local iso8601-formatted absolute timestamp is displayed.

       control-center-height
            type: integer
            default: 500
            description: The control center height in pixels
                 This setting is ignored when fit-to-screen is set to "true".

       control-center-width
            type: integer
            default: 500
            description: The control center width in pixels

       notification-visibility
            type: object
            visibility object properties:
                 state
                      type: string
                      optional: false
                      default: enabled
                      values: ignored, muted, transient, enabled
                      description: The notification visibility state.
                 override-urgency
                      type: string
                      optional: true
                      default: unset
                      values: unset, low, normal, critical
                      description: The new urgency for the notification if set.
                 app-name
                      type: string
                      optional: true
                      description: The app-name. Uses Regex.
                 desktop-entry
                      type: string
                      optional: true
                      description: The desktop-entry. Uses Regex.
                 summary
                      type: string
                      optional: true
                      description: The summary of the notification. Uses Regex.
                 body
                      type: string
                      optional: true
                      description: The body of the notification. Uses Regex.
                 urgency
                      type: string
                      optional: true
                      default: Normal
                      values: Low, Normal, Critical
                      description: The urgency of the notification.
                 category
                      type: string
                      optional: true
                      description: Which category the notification belongs to. Uses Regex.
            description: Set the visibility or override urgency of each incoming
                 notification.
                 If the notification doesn't include one of the properties, that
                 property will be ignored. All properties (except for state) use
                 regex. If all properties match the given notification, the
                 notification will be follow the provided state.
                 Only the first matching object will be used.
            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"]
            Valid array values (see widget-config for more information):
                 notifications
                      required: true
                      optional: false
                 title
                      optional: true
                 dnd
                      optional: true
                 label
                      optional: true
                 mpris
                      optional: true
                 menubar
                      optional: true
                 buttons-grid
                      optional: true
                 volume
                      optional: true
                 backlight
                      optional: true
                 inhibitors
                      optional: true
            description:
                 Which order and which widgets to display.
                 If the "notifications" widget isn't specified, it
                 will be placed at the bottom.
            multiple of same widget:
                 Append a # with any value to the end of the widget name.
                 Example: "title#TheMainTitle"
                 To address this widget specifically in the css file use the css class
       .TheMainTitle
            example:
           {
                "widgets": [
                     "inhibitors",
                     "title",
                     "dnd",
                     "notifications"
                ]
           }

       widget-config
            type: object
            description: Configure specific widget properties.
            multiple of same widget:
                 Append a # with any value to the end of the widget name.
                 Example: "title#TheMainTitle"
                 To address this widget specifically in the css file use the css class
       .TheMainTitle
            Widgets to customize:
                 title
                      type: object
                      css class: widget-title
                      properties:
                           text:
                                type: string
                                optional: true
                                default: "Notifications"
                                description: The title of the widget
                           clear-all-button:
                                type: bool
                                optional: true
                                default: true
                                description: Whether to display a "Clear All" button
                           button-text:
                                type: string
                                optional: true
                                default: "Clear All"
                                description: "Clear All" button text
                      description: The notification visibility state.
                 dnd
                      type: object
                      css class: widget-dnd
                      properties:
                           text:
                                type: string
                                optional: true
                                default: "Do Not Disturb"
                                description: The title of the widget
                      description: Control Center Do Not Disturb Widget.
                 label
                      type: object
                      css class: widget-label
                      properties:
                           text:
                                type: string
                                optional: true
                                default: "Label Text"
                                description: The text content of the widget
                           clear-all-button:
                                type: integer
                                optional: true
                                default: 5
                                description: The maximum lines
                      description: A generic widget that allows the user to add custom text.
                 mpris
                      type: object
                      css classes:
                           widget-mpris
                           widget-mpris-player
                           widget-mpris-title
                           widget-mpris-subtitle
                      properties:
                           image-size:
                                type: integer
                                optional: true
                                default: 96
                                description: The size of the album art.
                           image-radius:
                                type: integer
                                optional: true
                                default: 12
                                description: The border radius of the album art.
                      description: A widget that displays multiple music players.
                 menubar
                      type: object
                      css classes:
                           widget-menubar
                           .widget-menubar>box>.menu-button-bar
                           name of element given after menu or buttons with #
                      patternProperties:
                           menu#<name>:
                                type: object
                                properties:
                                     label:
                                          type: string
                                          optional: true
                                          default: "Menu"
                                          description: Label of button to show/hide menu dropdown
                                     position:
                                          type: string
                                          optional: true
                                          default: "right"
                                          description: Horizontal position of the button in the
       bar
                                          enum: ["right", "left"]
                                     animation-type:
                                          type: string
                                          optional: true
                                          default: "slide_down"
                                          description: Animation type for menu
                                          enum: ["slide_down", "slide_up", "none"]
                                     animation-duration:
                                          type: integer
                                          optional: true
                                          default: 250
                                          description: Duration of animation in milliseconds
                                     actions:
                                          type: array
                                          Default values: []
                                          Valid array values:
                                               type: object
                                               properties:
                                                    label:
                                                         type: string
                                                         default: "label"
                                                         description: Text to be displayed in
       button
                                                    command:
                                                         type: string
                                                         default: ""
                                                         description: "Command to be executed on
       click"
                                                    type:
                                                         type: string
                                                         default: "normal"
                                                         description: Type of the button.
                                                              Toggle buttons receive the
       '.active' css class
                                                         enum: ["normal", "toggle"]
                                                    update-command:
                                                         type: string
                                                         default: ""
                                                         description: "Command to be executed on
       visibility change of
                                                              cc to update the active state of
       the toggle button (should
                                                              echo true or false)"
                                                    active:
                                                         type: bool
                                                         default: false
                                                         description: Wether the toggle button is
       active as default or not
                                          description: A list of actions containing a label and a
       command
                                description: A button to reveal a dropdown with action-buttons
                           buttons#<name>:
                                type: object
                                properties:
                                     position:
                                          type: string
                                          optional: true
                                          default: "right"
                                          description: Horizontal position of the buttons in the
       bar
                                          enum: ["right", "left"]
                                     actions:
                                          type: array
                                          Default values: []
                                          Valid array values:
                                               type: object
                                               properties:
                                                    label:
                                                         type: string
                                                         default: "label"
                                                         description: Text to be displayed in
       button
                                                    command:
                                                         type: string
                                                         default: ""
                                                         description: "Command to be executed on
       click"
                                                    type:
                                                         type: string
                                                         default: "normal"
                                                         description: Type of the button
                                                              Toggle buttons receive the
       '.active' css class and an env
                                                              variable "SWAYNC_TOGGLE_STATE" is
       set. See example usage in the
                                                              default config.json
                                                         enum: ["normal", "toggle"]
                                                    update-command:
                                                         type: string
                                                         default: ""
                                                         description: "Command to be executed on
       visibility change of
                                                              cc to update the active state of
       the toggle button (should
                                                              echo true or false)"
                                                    active:
                                                         type: bool
                                                         default: false
                                                         description: Wether the toggle button is
       active as default or not
                                          description: A list of actions containing a label and a
       command
                                description: A list of buttons to be displayed in the menu-
       button-bar
                 buttons-grid
                      type: object
                      css class: widget-buttons (access buttons with
       >flowbox>flowboxchild>button)
                      properties:
                           actions:
                                type: array
                                Default values: []
                                Valid array values:
                                     type: object
                                     properties:
                                          label:
                                               type: string
                                               default: "label"
                                               description: Text to be displayed in button
                                          command:
                                               type: string
                                               default: ""
                                               description: "Command to be executed on click"
                                          type:
                                               type: string
                                               default: "normal"
                                               description: Type of the button
                                                    Toggle buttons receive the '.active' css
       class and an env
                                                    variable "SWAYNC_TOGGLE_STATE" is set. See
       example usage in the
                                                    default config.json
                                               enum: ["normal", "toggle"]
                                          active:
                                               type: bool
                                               default: false
                                               description: Wether the toggle button is active as
       default or not
                                description: A list of actions containing a label and a command
                      description: A grid of buttons that execute shell commands
                 volume
                      type: object
                      css class:
                           widget-volume
                           per-app-volume
                      properties:
                           label:
                                type: string
                                optional: true
                                default: "Volume"
                                description: Text displayed in front of the volume slider
                           show-per-app:
                                type: bool
                                optional: true
                                default: false
                                description: Show per app volume control
                           show-per-app-icon:
                                type: bool
                                optional: true
                                default: false
                                description: Show application icon in per app control
                           show-per-app-label:
                                type: bool
                                optional: true
                                default: false
                                description: Show application name in per app control
                           empty-list-label:
                                type: string
                                optional: true
                                default: "No active sink input"
                                description: Text displayed when there are not active sink inputs
                           expand-button-label:
                                type: string
                                optional: true
                                default: "⇧"
                                description: Label displayed on button to show per app volume
       control
                           collapse-button-label:
                                type: string
                                optional: true
                                default: "⇩"
                                description: Label displayed on button to hide per app volume
       control
                           icon-size:
                                type: integer
                                optional: true
                                default: 24
                                description: Size of the application icon in per app volume
       control
                           animation-type:
                                type: string
                                optional: true
                                default: "slide_down"
                                description: Animation type for the per app volume control
                                enum: ["slide_down", "slide_up", "none"]
                           animation-duration:
                                type: integer
                                optional: true
                                default: 250
                                description: Duration of animation in milliseconds
                      description: Slider to control pulse volume
                 backlight
                      type: object
                      css class: widget-backlight
                      properties:
                           label:
                                type: string
                                optional: true
                                default: "Brightness"
                                description: Text displayed in front of the backlight slider
                           device:
                                type: string
                                optional: true
                                default: "intel_backlight"
                                description: Device in `/sys/class/backlight` or
       `/sys/class/leds`
                           subsystem:
                                type: string
                                optional: true
                                default: "backlight"
                                description: Kernel subsystem for brightness control
                                enum: ["backlight", "leds"]
                           min:
                                type: integer
                                optional: true
                                default: 0
                                description: Lowest possible value for brightness
                      description: Slider to control screen brightness
                 inhibitors
                      type: object
                      css class: widget-inhibitors
                      properties:
                           text:
                                type: string
                                optional: true
                                default: "Inhibitors"
                                description: The title of the widget
                           clear-all-button:
                                type: bool
                                optional: true
                                default: true
                                description: Whether to display a "Clear All" button
                           button-text:
                                type: string
                                optional: true
                                default: "Clear All"
                                description: "Clear All" button text
                      description: Displayed if notifications are inhibited.

           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": {
                          "image-size": 96,
                          "image-radius": 12
                     },
                     "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: Sends a notification if a script fails to run

       scripts
            type: object
            script object properties:
                 exec
                      type: string
                      optional: false
                      description: The script to run. Can also run regular shell commands.
                 app-name
                      type: string
                      optional: true
                      description: The app-name. Uses Regex.
                 desktop-entry
                      type: string
                      optional: true
                      description: The desktop-entry. Uses Regex.
                 summary
                      type: string
                      optional: true
                      description: The summary of the notification. Uses Regex.
                 body
                      type: string
                      optional: true
                      description: The body of the notification. Uses Regex.
                 urgency
                      type: string
                      optional: true
                      default: Normal
                      values: Low, Normal, Critical
                      description: The urgency of the notification.
                 category
                      type: string
                      optional: true
                      description: Which category the notification belongs to. Uses Regex.
                 run-on
                      type: string
                      optional: true
                      values: action, receive
                      default: receive
                      description: Whether to run this action when the notification is
                                      received, or when an action is taken on it.
            description: Which scripts to check and potentially run for every
                 notification. If the notification doesn't include one of the properties,
                 that property will be ignored. All properties (except for exec) use regex.
                 If all properties match the given notification, the script will be run.
                 Only the first matching script will be run.
            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"
                     }
                }
           }

           You can also use these environment variables in your script:
           SWAYNC_BODY="Notification body content"
           SWAYNC_DESKTOP_ENTRY="Desktop entry"
           SWAYNC_URGENCY="Notification urgency"
           SWAYNC_TIME="Notification time"
           SWAYNC_APP_NAME="Notification app name"
           SWAYNC_CATEGORY="SwayNC notification category"
           SWAYNC_REPLACES_ID="ID of notification to replace"
           SWAYNC_ID="SwayNC notification ID"
           SWAYNC_SUMMARY="Notification summary"

                                            2024-05-21                                  swaync(5)