logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

swaync - A simple notification daemon with a GTK gui for notifications and the control center

Configuration

       The  main  config  file is located in /etc/xdg/swaync/config.json. Copy it over to your ~/.config/swaync/
       folder to customize without needing root access.

       To reload the config, you'll need to run swaync-client--reload-config

       For information on the config file format, see swaync(5)

Control Center Keyboard Shortcuts

Up/Down: Navigate notifications

       Home: Navigate to the latest notification

       End: Navigate to the oldest notification

       Escape/Caps_Lock: Close notification panel

       Return: Execute default action or close notification if none

       Delete/BackSpace: Close notification

       Shift+C: Close all notifications

       Shift+D: Toggle Do Not Disturb

       Buttons1-9: Execute alternative actions

       Leftclickbutton/actions: Activate notification action

       Rightclicknotification: Close notification

Name

       swaync - A simple notification daemon with a GTK gui for notifications and the control center

Options

-h,--help
           Show help options

       -v,--version
           Prints version

       -s,--style <CSS file>
           Use a custom Stylesheet file

       -c,--config <Config file>
           Use a custom config file

Scripting

       Scripting rules and logic:

       1.  Onlyone script can be fired per notification
       2.  Each script requires `exec` and at least one of the other properties
       3.  All listed properties must match the notification for the script to be ran
       4.  If any of the properties doesn't match, the script will be skipped
       5.  If a notification doesn't include one of the properties, that property will be skipped

       Notification information can be printed into a terminal by running G_MESSAGES_DEBUG=allswaync  (when  a
       notification appears).

       Config properties:

           {
                "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"
                     }
                }
                other non scripting properties...
           }

       config.json example:

           {
                "scripts": {
                     // This script will only run when Spotify sends a notification containing
                     // that exact summary and body
                     "example-script": {
                          "exec": "~/.config/swaync/myRickRollScript.sh",
                          "app-name": "Spotify"
                          "summary": "Never Gonna Give You Up",
                          "body": "Rick Astley - Whenever You Need Somebody"
                     }
                }
                other non scripting properties...
           }

   Disablescripting
       To completely disable scripting, the project needs to be built like so:

           meson build -Dscripting=false
           ninja -C build
           meson install -C build

Usage

swaync [option]

Waybar Example

       This example requires NotoSansMonoNerdFont to get the icons looking right

       Waybar config

           "custom/notification": {
                "tooltip": false,
                "format": "{icon}",
                "format-icons": {
                     "notification": "<span foreground='red'><sup></sup></span>",
                     "none": "",
                     "dnd-notification": "<span foreground='red'><sup></sup></span>",
                     "dnd-none": "",
                     "inhibited-notification": "<span foreground='red'><sup></sup></span>",
                     "inhibited-none": "",
                     "dnd-inhibited-notification": "<span foreground='red'><sup></sup></span>",
                     "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
           },

       Waybar css file

           #custom-notification {
                font-family: "NotoSansMono Nerd Font";
           }

                                                   2024-05-21                                          swaync(1)

See Also