swaync(1)
β¨ swaync β the manual, but make it cute β¨
okay bestie, welcome to the swaync manual page π the manual name is swaync, it lives in the General Commands Manual section, and it's giving notification daemon with a GTK gui for notifications and the control center. yeah. that's the whole vibe. let's go π¦
πΈ NAME πΈ
swaync β a simple notification daemon with a GTK gui for notifications and the control center π
π USAGE π
swaync [option]
β¨ OPTIONS β¨
-h,--helpβ show help options π«Ά (when u forget how anything works, no judgment)-v,--versionβ prints version β-s,--style <CSS file>β use a custom Stylesheet file π¨ yes u can make it pretty--replaceβ replace the currently running instance of SwayNotificationCenter π one instance to rule them all--skip-system-cssβ skip trying to parse the packaged Stylesheet file. useful for CSS debugging π--custom-system-cssβ pick a custom CSS file to use as the "system" CSS. useful for CSS debugging π (yes it's basically the CSS-debugging sibling of the one above, they're a duo)-c,--config <Config file>β use a custom config file π
β¨οΈ Control Center Keyboard Shortcuts β¨οΈ
keyboard shortcuts for the control center, memorize these, it's giving main character energy:
- Up/Down: navigate notifications β¬οΈβ¬οΈ
- Home: navigate to the latest notification π
- End: navigate to the oldest notification π
- Escape/Caps_Lock: close notification panel π (yes caps lock. iconic.)
- Return: execute default action or close notification if none β©οΈ
- Delete/BackSpace: close notification ποΈ
- Shift+C: close all notifications π§Ή
- Shift+D: toggle Do Not Disturb π€«
- Buttons 1-9: execute alternative actions π’
- Left click button / actions: activate notification action π±οΈ
- Middle/Right click notification: close notification π±οΈ
π οΈ CONFIGURATION π οΈ
the main config file lives at /etc/xdg/swaync/config.json π copy it over to your ~/.config/swaync/ folder to customize without needing root access. periodt, no sudo needed bestie π
to reload the config, you'll need to run swaync-client --reload-config π
for information on the config file format, see swaync(5) π
π§ Scripting π§
scripting rules and logic, listen up:
- Only one script can be fired per notification
- Each script requires
execand at least one of the other properties - All listed properties must match the notification for the script to be ran
- If any of the properties doesn't match, the script will be skipped
- 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=all swaync (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...
}
π« Disable scripting π«
to completely disable scripting, the project needs to be built like so:
meson build -Dscripting=false
ninja -C build
meson install -C build
π Waybar Example π
this example requires NotoSansMono Nerd Font 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";
}
ngl this whole page is swaync(1) from 2026-05-19 and that's the source/version + date situation, so consider this ur lil sign-off bestie π«Ά go forth and get notified πβ¨ππ¦
π¦ where this page comes from
- fedora 43: SwayNotificationCenter 0.12.6-1.fc43 Β· GPL-3.0-only
- fedora 44: SwayNotificationCenter 0.12.6-1.fc44 Β· GPL-3.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms