zenity 与通知发送有什么区别/(缺点)优点?

zenity 与通知发送有什么区别/(缺点)优点?

两者都有禅宗通知发送。 (至少在 Fedora/GNOME 上,两者似乎都已预安装。)

那么考虑到我想显示通知,这些通知之间有什么区别?

是否有人安装在更多发行版中(默认情况下)?显示通知的过程有什么不同吗?有人可能更兼容某些桌面环境吗?它甚至可以在某些桌面环境中使用吗?

我还注意到有关的文档notify-send非常少。在我的 Fedora 安装中,它甚至没有手册页......

答案1

功能比较

zenity --notification相当于notify-send最简单的情况。

例如,这两个命令是等效的:

$ zenity --notification --text=Title
$ notify-send Title

这些也是如此:

$ notify-send Title 'Long text message'
$ zenity --notification --text='Title\nLong text message'

正如您所看到的, for 的语法notify-send更短、更简单,因为它是一个专门的工具,而 while--notification只是zenity.

差异是:

  • notify-send有一个expire-time选项,但是根据当前的手册页,Ubuntu 的 Osd 和 Gnome shell 都会忽略该选项。
  • zenity有一个--listen选项可以更改通知的外观,而无需关闭并重新打开它:显示的消息、可见性和图标都可以通过向 zenity 的标准输入发送适当的字符串来更改。
  • 设置图标只需要for --iconzenity的标准输入和命令。notify-send--listenicon: error
  • 类别和紧急程度是通过 中的专用选项设置的zenity,但它们需要一个--hint选项。

请注意,您需要zenity在使用时显式终止进程--listen,因为即使在关闭后它也会继续监听标准输入(我认为这是一个错误)。对于通知动态变化的复杂程序来说,这不是问题,但对于简单的情况来说,这会使事情变得不必要的复杂。

另请注意,--hint选项zenity简要提及zenity --help-notification,但在手册页中未提及。

类别和紧急程度都记录在桌面通知规范

备择方案

dialog和旧的whiptail都是可能的替代方案,但我认为使用它们进行通知没有任何优势,除非您无法安装notify-send或者zenity您已经将它们用于其他目的,因为两者都具有比通知更多的功能。

相关内容