Desktop-Environment
zenity 與 notify-send 有什麼區別/(缺點)優勢?
有zenity和notify-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
它需要--listen
和icon: error
標準輸入上的 zenity 命令。- 類別和緊急程度在 中使用專用選項進行設置
zenity
,而它們需要一個--hint
選項。請注意,您需要
zenity
在使用時顯式終止該程序--listen
,因為即使在它關閉後它也會繼續偵聽標準輸入(我想這是一個錯誤)。對於通知動態更改的複雜過程,這不是問題,但對於簡單的情況,它會使事情變得不必要地複雜。另請注意,
--hint
選項 的zenity
簡要提及zenity --help-notification
,但手冊頁中未提及。類別和緊迫性都記錄在桌面通知規範中。
備擇方案
dialog
舊whiptail
的是可能的替代方案,但我認為將它們用於通知沒有任何優勢,除非您無法安裝notify-send
或zenity
您已經將它們用於其他目的,因為兩者都具有比通知更多的功能。