我使用的是 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<
和
>
with >
Give,例如,
notify-send 'Summary' '<enter>'
如果您愿意,可以只使用多行摘要,例如:
notify-send 'Summary
<enter>'