从 bash 脚本激活 KDE 4 通知

Posted

技术标签:

【中文标题】从 bash 脚本激活 KDE 4 通知【英文标题】:Activating KDE 4 notifications from bash scripts 【发布时间】:2010-11-25 16:10:08 【问题描述】:

我有一个由 crontab 激活并在后台运行的 bash 脚本。我想添加在执行期间发送通知的功能。我的 KDE 4 桌面有一个花哨的通知系统,它会从托盘栏中弹出非模态消息,这非常适合我的需要。所以我一直在寻找一种从 bash 脚本生成这些通知的方法,但我对 KDE 平台几乎一无所知,所以我被困住了。谁能指出我的解决方案?

【问题讨论】:

如果您介意我问一下,您使用的通知系统是什么? 如果可以忘记与 DE 的通知区域的集成,您可以使用 xmessage 命令(来自 x11-utils),其目的是成为“基于 X 的 /bin/ echo",即它只是弹出一个最小的对话窗口。 【参考方案1】:

可以使用kdialog的被动弹出选项。

kdialog --passivepopup <text> <timeout>

例子:

kdialog --passivepopup 'This is a notification' 5

【讨论】:

在我的系统上,这个命令在屏幕的右上角发送一个通知,带有蓝色背景和白色文本。【参考方案2】:

您也可以使用 notify-send(在基于 Debian 的系统上,安装 libnotify-bin 软件包):

notify-send -i 'dialog-information' 'Summary' '<b><font color=red>Message body.'

据我所知,这应该适用于多个窗口管理器(例如 KDE 和 Gnome)。

编辑:消息的 html 格式仅适用于某些通知守护程序,因此应避免使用。

【讨论】:

这个答案的好建议:我了解到您可以使用 html 为正文提供动力,并且第一个文本是通知的主题。 令我惊讶的是,我在我的 Arch Linux 上安装了 notify-send KDE,但没有安装 kdialog。这似乎不是一种规范,因为 kdialog 是 kdebase 的一部分,但显然,有些系统安装了 libnotify(dolphin 的可选依赖项)但没有安装 kdialog。【参考方案3】:
kdialog --passivepopup 'message including html' timeout

是不需要超时的 KDE 选项。您甚至可以通过添加标题 (--title) 等来调整它 --> 请参阅 kdialog --help

一方面值得一提的是,我的 openSuSE KDE4 系统上安装了 kdialog,而这里没有安装 notify-send。

另一方面,notify-send 的优势在于您可以在不同的桌面环境中使用它

【讨论】:

【参考方案4】:

确认 notify-send 可与 XFCE4(基于 Debian 的 Mint)一起使用,但 &lt;b&gt;&lt;font color=red&gt; 对我不起作用。出于某种原因,它使消息正文文本变为深灰色(几乎难以辨认),所以我留下了那个 html 并且标题(“摘要”)和正文都出现了白色。

很酷的是你可以为你喜欢的图标添加一个绝对路径—— 例如-i '~/myapps/foobarapp/icons/64x64/64x64.png'

【讨论】:

以上是关于从 bash 脚本激活 KDE 4 通知的主要内容,如果未能解决你的问题,请参考以下文章

sh Bash脚本,用于检查网站是启动还是关闭,并通过电子邮件发送通知

数据库备份结果检查钉钉通知脚本

从 Windows 的 git bash 激活 venv

当我的应用程序激活时如何处理推送通知?

从操作脚本访问 android 通知服务

是否可以在 Bamboo 的电子邮件通知中附加工件?