我错了还是Dunst+notify-send违反了桌面通知规范?

问题描述 投票:0回答:1

桌面通知规范中?我读到了

如果

replaces_id
为 0,则返回值是表示通知的 UINT32。它是唯一的,除非生成了 MAXINT 数量的通知,否则不会重复使用。可接受的实现可能只使用 ID 递增计数器。返回的 ID 始终大于零。服务器必须确保不返回零作为 ID。

但是,如果我这样做

kill $(pidof dunst)

确保 Dunst1 它将在下一个通知时重新启动,然后输入

notify-send 'hello' -p
notify-send 'hello' -p
notify-send 'hello' -p -r 5
notify-send 'hello' -p
notify-send 'hello' -p

我得到这些输出

2
3
5
4
5

表明 id 5 正在被重用。

但实际上,我可以看到邓斯特并没有真正用第五个视觉通知取代第三个视觉通知(我用明确的

-r 5
制作的那个)。

所以感觉 Dunst(服务器)是符合要求的...但是

notify-send
(客户端)报告了错误的 ID?我的意思是,
notify-send
不应该从邓斯特那里收到 ID 吗?

我假设,由于我没有看到第 5 个通知取代第 3 个通知,因此 Dunst 将 5 个不同的 ID 与 5 个通知相关联,例如

2
3
5
4
6

(1) 1.10.0 (2024-02-19)

server notifications dbus libnotify
1个回答
0
投票

实际上,在尝试我实现的通知服务器时,我刚刚验证了

notify-send
确实返回了服务器传递给它的任何内容。

因此,邓斯特一定认为,虽然正确地避免了用未请求 ID 的通知替换显式请求 ID 的通知,但它可能不是通过 ID 来这样做,而是通过其他一些内部定义的唯一标识符。

© www.soinside.com 2019 - 2024. All rights reserved.