桌面通知正文文本中的换行符失效问题
桌面通知正文文本中的换行符失效问题
嘿,我之前也碰到过一模一样的困扰!默认情况下,通知服务器会把纯文本里的换行符当成空格合并,想要实现分段的效果,得换个思路用HTML格式来处理,下面给你两种场景的解决办法:
用notify-send命令的情况
直接把换行换成HTML的换行标签<br>,如果要空行的话就用两个<br>,大部分主流通知服务器默认支持HTML格式,不需要额外参数。比如你要的效果可以这么写:
notify-send "An error occurred" "An error occurred processing the path:<br><br>/path/to/file<br><br>This may result in consistency issues."
执行这个命令后,通知就会按照你想要的分段显示啦~
自己写DBus应用的情况
在构造通知的body内容时,同样把原本的换行替换成<br>标签,比如在代码里生成body字符串的时候,把\n换成<br>,需要空行就用<br><br>。举个Python调用DBus的示例片段:
# 构造带分段的通知内容 body = "An error occurred processing the path:<br><br>/path/to/file<br><br>This may result in consistency issues." # 后续将这个body传入DBus的通知调用逻辑中即可
这样你的自定义应用发出来的通知也能正确实现分段效果。
需要注意的是,少数老旧的通知服务器可能不支持HTML格式,但现在主流的GNOME Shell、KDE Plasma、XFCE等桌面环境的通知服务都能完美识别这种写法。
备注:内容来源于stack exchange,提问作者Jonathan Gilbert
相关产品推荐
相关产品推荐

