终端日历 khal:在 awesome wm 中使用 naughty.notify 生成时突出显示当前日期
terminal calendar khal: Highlight current date when spawning with naughty.notify in awesome wm
当鼠标按下 awesome wm 中的默认文本时钟小部件时,我正在尝试生成终端日历 khal。
local cal_notification
mytextclock:connect_signal("button::release",
function()
if cal_notification == nil then
awful.spawn.easy_async(noisy,
function(stdout, stderr, reason, exit_code)
cal_notification = naughty.notify{
text = stdout,
width = auto,
destroy = function() cal_notification = nil end
}
end
)
else
naughty.destroy(cal_notification)
end
end)
不幸的是,在执行时,khal 的所有语法突出显示都消失了。
有谁知道如何在不丢失 'look' 的情况下生成通知?
编辑:
这可能发生在任何其他终端日历上,例如 cal,我想。
使用 grep --color -EC6 "$(date +%e)" 它仍然不输出颜色。
使用 khal 的强制 --color 语句,它在每个突出显示的字符之前输出 001b 1m。
像 khal
这样的 CLI 应用程序使用所谓的 ASCII escape codes 来编码彩色突出显示。其中一部分是您在“每个突出显示的字符之前输出 001b 1m
”看到的内容。
这些序列中的字符比您在此处粘贴的字符多,但这些字符可能被 Lua 的字符串处理或 awesome 的渲染吞没了。
这里的问题是,这种使用 ASCII 转义码突出显示文本的方式是终端和终端仿真器特有的。其他应用程序不使用或实现它们。
具体来说,文本标记是通过 Pango Markup 完成的。因此,为了让您的通知保留 khal
创建的突出显示,您需要创建一个转换层,将 ASCII 转义码转换为 Pango 标记。
另一个挑战是终端中的颜色使用基于主题的系统。终端配置有一组特定的颜色,转义码仅索引到该列表中。他们自己不持有任何实际的颜色信息。但是,对于 Pango,您需要在标记中指定实际颜色值。
当鼠标按下 awesome wm 中的默认文本时钟小部件时,我正在尝试生成终端日历 khal。
local cal_notification
mytextclock:connect_signal("button::release",
function()
if cal_notification == nil then
awful.spawn.easy_async(noisy,
function(stdout, stderr, reason, exit_code)
cal_notification = naughty.notify{
text = stdout,
width = auto,
destroy = function() cal_notification = nil end
}
end
)
else
naughty.destroy(cal_notification)
end
end)
不幸的是,在执行时,khal 的所有语法突出显示都消失了。 有谁知道如何在不丢失 'look' 的情况下生成通知?
编辑: 这可能发生在任何其他终端日历上,例如 cal,我想。
使用 grep --color -EC6 "$(date +%e)" 它仍然不输出颜色。 使用 khal 的强制 --color 语句,它在每个突出显示的字符之前输出 001b 1m。
像 khal
这样的 CLI 应用程序使用所谓的 ASCII escape codes 来编码彩色突出显示。其中一部分是您在“每个突出显示的字符之前输出 001b 1m
”看到的内容。
这些序列中的字符比您在此处粘贴的字符多,但这些字符可能被 Lua 的字符串处理或 awesome 的渲染吞没了。
这里的问题是,这种使用 ASCII 转义码突出显示文本的方式是终端和终端仿真器特有的。其他应用程序不使用或实现它们。
具体来说,文本标记是通过 Pango Markup 完成的。因此,为了让您的通知保留 khal
创建的突出显示,您需要创建一个转换层,将 ASCII 转义码转换为 Pango 标记。
另一个挑战是终端中的颜色使用基于主题的系统。终端配置有一组特定的颜色,转义码仅索引到该列表中。他们自己不持有任何实际的颜色信息。但是,对于 Pango,您需要在标记中指定实际颜色值。