This article will be about how I configured my screensaver script to disable dunst
notification.
Initial setup
Please check the xautolock article
I made.
Here is the screen lock script I was using for ~/bin/lockscreen.sh
#!/bin/sh
set -e
# enable the lock screen
i3lock -c 272d2d -i ~/Documents/wallpaper-lockscreen.png
Problem
When my computer is locked, because of a meeting or a lunch break, the notification are still received by the notifier, in my case dunst
Each notification has a short timeout, you are supposed to see them when working, but when your computer is locked you don't see them
so here is what to do
#!/bin/sh
# pause notifications
dunstctl set-paused true
# enable the lock screen
i3lock --nofork -c 272d2d -i ~/Documents/wallpaper-lockscreen.png
# restore notifications
dunstctl set-paused false
Please note the usage of --nofork with i3lock
. Without it, the script simply exits when i3lock
is launched, so the notifications won't be paused.
Better implementation
I love using trap, it's a good way to avoid problem.
#!/bin/sh
# using trap make sure to restore dunst even if something fails
# restore notifications when script ends
# this command is defered when the script ends
trap "dunstctl set-paused false" EXIT
# pause notifications
dunstctl set-paused true
# enable the lock screen
i3lock --nofork -c 272d2d -i ~/Documents/wallpaper-lockscreen.png