libotify/notify-send:如果正文包含“”,则不会打印正文

libotify/notify-send:如果正文包含“”,则不会打印正文

我使用的是 Linux Mint 18.1,MATE。

我使用 notification-send 命令来可视化键的名称(例如<enter>),同时通过 python 脚本将它们发送到当前窗口。大约两周以来,notify-send 表现出了奇怪的行为。我知道 bash 的基本语法是notify-send [OPTIONS] <summary> [body].

基本问题

执行时notify-send -t 0 '<enter>' 'text body',一切看起来都很好: 在此输入图像描述

但是,当尝试使用 打印消息正文中的键名称时notify-send -t 0 'Summary' '<enter>',我得到:

在此输入图像描述

同样的情况也发生在notify-send -t 0 'Summary' '<', notify-send -t 0 'Summary' '>'notify-send -t 0 'Summary' \<

任何想法为什么正文文本包含 < 或 > 时会被打印为空白?


解决方法(失败)

我尝试使用 python 模块代替:

from gi.repository import Notify
Notify.init("App Name")
Notify.Notification.new("Summary","<enter>").show()

但结果和上面图2是一样的。


附加信息:

当尝试zenity --info --title='Summary' --text='<enter>'使用 bash 时,我收到一条错误消息:

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

打开的信息对话框中没有文本<enter>,而是令人惊讶的文本:All updates are complete.

答案1

通知规范身体可以包含简单的标记,因此“<...>”内的任何标记都将被删除并解释(如果可能)。例如,"<b>hello</b>"将以粗体显示该单词。

您可以使用标准的 html 实体机制并显示<with&lt;>with &gt;Give,例如,

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

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

notify-send 'Summary
<enter>'

相关内容