Desktop-Environment

zenity 與 notify-send 有什麼區別/(缺點)優勢?

  • March 19, 2021

zenitynotify-send。(至少在 Fedora/GNOME 上,兩者似乎都已預先安裝。)

所以考慮到我想顯示通知,這些之間有什麼區別?

是否有人安裝在更多發行版中(預設情況下)?顯示通知的過程有什麼不同嗎?有人可能更兼容某些桌面環境嗎?它甚至可以在某些桌面環境中使用嗎?

我還注意到有關文件notify-send非常空閒。在我的 Fedora 安裝中,它甚至沒有手冊頁……

功能比較

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更短更簡單,因為它是一個專用工具,而--notification只是zenity.

區別在於:

  • notify-send有一個expire-time選項,但是根據目前的手冊頁,Ubuntu 的 Osd 和 Gnome shell 都忽略了該選項。
  • zenity有一個--listen選項可以在不關閉和重新打開通知的情況下更改通知的外觀:顯示的消息、可見性和圖示都可以通過向 zenity 的標準輸入發送適當的字元串來更改。
  • 設置一個圖示只需要--icon同時notify-send它需要--listenicon: error標準輸入上的 zenity 命令。
  • 類別和緊急程度在 中使用專用選項進行設置zenity,而它們需要一個--hint選項。

請注意,您需要zenity在使用時顯式終止該程序--listen,因為即使在它關閉後它也會繼續偵聽標準輸入(我想這是一個錯誤)。對於通知動態更改的複雜過程,這不是問題,但對於簡單的情況,它會使事情變得不必要地複雜。

另請注意,--hint選項 的zenity簡要提及zenity --help-notification,但手冊頁中未提及。

類別和緊迫性都記錄在桌面通知規範中。

備擇方案

dialogwhiptail的是可能的替代方案,但我認為將它們用於通知沒有任何優勢,除非您無法安裝notify-sendzenity您已經將它們用於其他目的,因為兩者都具有比通知更多的功能。

引用自:https://unix.stackexchange.com/questions/516618