我正在运行一项服务,该服务将根据情况每 5 分钟通知一次。
这些通知很重要,但除了每个弹出窗口之外,我只想看到通知列表中最新的通知,所以我尝试使用notify-send和zenity的唯一标识符来替换之前的通知。
我能做的最好的事情就是更换当前的弹出窗口通知,如果尚未超时,但它们仍然堆叠在通知列表中。
或者,我可以让通知仅以弹出窗口的形式出现,而不会出现在列表中,但我希望在我离开后返回时可以使用此功能。
新的通知是否可以删除或者替换列表中的先前的通知?
notify () {
local message="$1"
local id="999123"
# Check if a notification exists to cancel:
if notify-send --query "$id"; then
notify-send --cancel "$id"
fi
notify-send "$id" "$message"
#notify-send --hint int:transient:1 "$message"
}
message="New notification"
notify "$message"
我曾短暂涉猎过 dbus,但由于某种原因,还无法生成基本的测试通知。
dbus-send --dest=org.freedesktop.ExampleName \
/org/freedesktop/sample/object/name \
org.freedesktop.ExampleInterface.ExampleMethod \
int32:47 string:'hello world' double:65.32 \
array:string:"1st item","next item","last item" \
dict:string:int32:"one",1,"two",2,"three",3 \
variant:int32:-8 \
objpath:/org/freedesktop/sample/object/name
Ubuntu 22.04 和 23.10。