Libnotify

libotify / notify-send:如果正文包含“<”或“>”,則不列印正文

  • June 12, 2017

我在 Linux Mint 18.1 上,MATE。

我正在使用 notify-send 命令來視覺化鍵的名稱(例如&lt;enter&gt;),同時通過 python 腳本將它們發送到目前視窗。大約兩週,notify-send 表現出奇怪的行為。我知道 bash 的基本語法是notify-send [OPTIONS] &lt;summary&gt; [body].

基本問題

執行時notify-send -t 0 '&lt;enter&gt;' 'text body',一切看起來都很好: 在此處輸入圖像描述

但是,當嘗試使用 列印消息正文中的鍵名時notify-send -t 0 'Summary' '&lt;enter&gt;',我得到:

在此處輸入圖像描述

同樣的情況發生在notify-send -t 0 'Summary' '&lt;', notify-send -t 0 'Summary' '&gt;'notify-send -t 0 'Summary' \&lt;

如果正文包含 < 或 > ,為什麼正文列印為空白的任何想法?


解決方法(失敗)

我嘗試使用 python 模組代替:

from gi.repository import Notify
Notify.init("App Name")
Notify.Notification.new("Summary","&lt;enter&gt;").show()

但結果與上面的圖 2 相同。


附加資訊:

在 bash 中嘗試zenity --info --title='Summary' --text='&lt;enter&gt;'時,我收到一條錯誤消息:

(zenity:4952): Gtk-WARNING **: Failed to set text '&lt;enter&gt;' from markup due to error parsing markup: Error on line 1 char 24: Element 'markup' was closed, but the currently open element is 'enter'

而不是 text &lt;enter&gt;,打開的資訊對話框有令人驚訝的文本:All updates are complete.

通知規範正文可以包含簡單的標記,因此如果可能,“<…>”中的任何標籤都將被刪除和解釋。例如,"&lt;b&gt;hello&lt;/b&gt;"將以粗體顯示單詞。

您可以使用標準的 html 實體機制並顯示一個&lt;with&lt;&gt;with &gt;give,例如,

notify-send 'Summary' '&lt;enter&gt;'

如果您願意,可以只使用多行摘要,例如:

notify-send 'Summary
&lt;enter&gt;'

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