swaync(1) General Commands Manual swaync(1)

# [NAME](#NAME)

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

# [USAGE](#USAGE)

**swaync** \[option]

# [OPTIONS](#OPTIONS)

**-h, --help**

Show help options

**-v, --version**

Prints version

**-s, --style** &lt;CSS file&gt;

Use a custom Stylesheet file

**--replace**

Replace the currently running instance of SwayNotificationCenter

**--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

**-c, --config** &lt;Config file&gt;

Use a custom config file

# [Control Center Keyboard Shortcuts](#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

**Buttons 1-9**: Execute alternative actions

**Left click button / actions**: Activate notification action

**Middle/Right click notification**: Close notification

# [CONFIGURATION](#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)](/man/enterprise-packages/swaync/swaync.5)

# [Scripting](#Scripting)

Scripting rules and logic:

1\.

**Only one** 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=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](#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](#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";
}
```

2026-10-30

---

Document: swaync(1) from swaync 0.12.6-r1 (Chainguard OS)
