Difference between revisions of "Dunstify"

From ArchWiki
Jump to navigation Jump to search
(→‎Tips and tricks: Add tip to use dunstify to implement a volume indicator notification.)
(completely merged into Dunst, redirect there (please redirect immediately after merging articles, or it will be necessary to check for conflicting edits after a while))
Tag: New redirect
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Related articles start}}
#redirect [[Dunst#Dunstify]]
{{Related|Desktop Notifications}}
{{Related articles end}}
Dunstify is an alternative to the [[Desktop notifications#Usage in programming|notify-send]] command
which is completely compatible to notify-send and can be used alongside it, but offers some more features.
Dunstify works only with the [[Dunst]] notification daemon.
Additionally to the options available in notify-send, dunstify offers some more features like IDs and actions.
Dunstify is available through the [[AUR]]. Simply install the {{AUR|dunstify}} package.
==Notification ID==
You can assign an ID to a notification by calling dunstify with the {{ic|-r ID}} option, where {{ic|ID}} needs to be an integer.
If a notification with that ID already exists it will be replaced with the new one(therefore the long option name {{ic|1=--replace=ID}}).
Furthermore you can close a notification by using {{ic|1=dunstify --close=ID}}.
You can define actions which can be invoked directly from the notification by specifying one ore more {{ic|1=--action=action,label}} parameters.
For instance:
dunstify --action="replyAction,reply" "Message received"
The user can then access the specified actions via dunsts context menu.
The call to dunstify will block until either the notification disappears or an action is selected.
In the former case dunstify will return 1 if the notification timed out and 2 if it was closed manually.
In the latter case it returns the action which was selected.
==Tips and tricks==
===Using dunstify as volume/brightness level indicator===
You can use the replace id feature to implement a simple volume or brightness indicator notification like in this picture [https://i.postimg.cc/j2CDkS1H/screen1712.png].
To achieve that place the following script somewhere on your {{ic|PATH}}.
# changeVolume
# Arbitrary but unique message id
# Change the volume using alsa(might differ if you use pulseaudio)
amixer -c 0 set Master "$@" > /dev/null
# Query amixer for the current volume and whether or not the speaker is muted
volume="$(amixer -c 0 get Master | tail -1 | awk '{print $4}' | sed 's/[^0-9]*//g')"
mute="$(amixer -c 0 get Master | tail -1 | awk '{print $6}' | sed 's/[^a-z]*//g')"
if [[ $volume == 0 || "$mute" == "off" ]]; then
    # Show the sound muted notification
    dunstify -a "changeVolume" -u low -i audio-volume-muted -r "$msgId" "Volume muted"
    # Show the volume notification
    dunstify -a "changeVolume" -u low -i audio-volume-high -r "$msgId" \
    "Volume: ${volume}%" "$(getProgressString 10 "<b> </b>" " " $volume)"
# Play the volume changed sound
canberra-gtk-play -i audio-volume-change -d "changeVolume"
{{ic|getProgressString}} needs to be some function assembling the progressbar like string.
This script uses [https://github.com/Fabian-G/dotfiles/blob/master/bin/getProgressString].
Now simply bind {{ic|changeVolume 2dB+ unmute}} etc. to some hotkey and you are done.
You might also want to make dunst ignore these type of notifications in its history.

Latest revision as of 15:54, 12 January 2019

Redirect to: