从bash脚本中激活KDE 4通知

25

我有一个由crontab激活并在后台运行的bash脚本。我想为它添加在执行过程中发送通知的功能。我的KDE 4桌面拥有一种时尚的通知系统,可以从托盘栏弹出非模态消息,这对我的需求来说非常完美。因此,我正在寻找一种从bash脚本生成这些通知的方法,但我几乎没有关于KDE平台的知识,所以我陷入了困境。是否有人可以指向一个解决方案?


请问您使用的通知系统是什么? - jackyalcine
如果可以不考虑与桌面环境通知区的集成,您可以使用xmessage命令(来自x11-utils),它的目的是成为“基于X的/bin/echo”,即它只会弹出一个最小的对话窗口。 - Johan Boulé
4个回答

38

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

kdialog --passivepopup <text> <timeout>

示例:

kdialog --passivepopup 'This is a notification' 5

在我的系统上,这个命令会在屏幕的右上角发送一个通知,背景为蓝色,文字为白色。 - qed

20

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

notify-send -i 'dialog-information' 'Summary' '<b><font color=red>Message body.'
据我所知,这应该适用于多个窗口管理器(如KDE和Gnome)。
编辑:消息的HTML格式仅适用于某些通知守护程序,因此应避免使用。

这个回答中有很好的建议:我学到了你可以用HTML来控制页面结构,而第一段文本是通知的主题。 - Diego Shevek
令我惊讶的是,我的 Arch Linux with KDE 上安装了 notify-send,但没有 kdialog。这似乎不是一种常态,因为 kdialog 是 kdebase 的一部分,但显然有些系统安装了 libnotify(dolphin 的可选依赖项),但没有 kdialog。 - JepZ

2
kdialog --passivepopup 'message including html' timeout

在KDE中有一个名为kdialog的选项,其中超时是不必要的。你可以通过添加标题(--title)等来调整此设置 -> 参见 kdialog --help

一方面值得一提的是,在我的openSuSE KDE4系统上安装了kdialog,而notify-send在此处未安装。

另一方面,notify-send的优点是可以在不同的桌面环境中使用。


0

确认 notify-send 在 XFCE4(基于 Debian 的 Mint)中可以正常工作,除了 <b><font color=red> 对我无效。由于某种原因,它使消息正文变成深灰色(几乎无法辨认),因此我将该 HTML 略去,标题(“摘要”)和正文都显示为白色。

很酷的是,你可以将偏好的图标的绝对路径放在这里 - 例如:-i '~/myapps/foobarapp/icons/64x64/64x64.png'


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接