Toggling dunst notifications in i3

In case you always wanted to write a script that temporarily turns off dunst notifications in i3wm but have never taken the time to write one yourself, here, have a working implementation in bash.


#!/usr/bin/env bash

notify="notify-send -u low dunst"

case `dunstctl is-paused` in
        dunstctl set-paused false
        $notify "Notifications are enabled"
        $notify "Notifications are paused"
        # the delay is here because pausing notifications immediately hides
        # the ones present on your desktop; we also run dunstctl close so
        # that the notification doesn't reappear on unpause
        (sleep 3 && dunstctl close && dunstctl set-paused true) &

Now let’s add a hotkey that toggles notifications in i3 config:


bindsym $mod+F5 exec --no-startup-id ~/.local/bin/

That’s it, pressing Win + F5 will now toggle notifications on/off. Any notifications received during downtime will be shown as soon as dunst is unpaused.