Ubuntu Lucid 上的命令行桌面通知

Ubuntu Lucid 上的命令行桌面通知

我正在编写一个 shell 脚本,我希望通过该脚本显示一个桌面通知,该通知会停留在显示屏的一角,直到用户单击它为止,如果发送了多个通知,则所有通知都会同时显示并可见。我试过,notify-send它在 Ubuntu Hardy 上运行良好,但它无法在 Ubuntu Lucid 上满足我的需要。我应该用什么来代替?

我也尝试过pynotifypython-notify)和libnotify,但它们似乎都使用相同的后端,默认情况下无法完成我想要的操作。

我试过了

$ notify-send foo

但它显示的通知会在几秒钟后超时(不好),并且

$ notify-send -t 0 foo

在屏幕中间的窗口中显示通知(不好)。如果我这样做

$ notify-send foo
$ notify-send bar

同一时间只显示一条通知(不好)。

经过进一步挖掘我发现:

答案1

看来这notify-osd是新的 Ubuntu 通知守护程序,它不能满足我的要求,而这notification-daemon正是我需要的,它是以前的 Ubuntu 版本(如 Hardy)中的默认守护程序。以下是如何安装它并将其设置为 Ubuntu Lucid 上的默认守护程序:

$ sudo apt-get install notification-daemon
$ sudo perl -pi -e 's@^Exec=.*@Exec=/usr/lib/notification-daemon/notification-daemon@' /usr/share/dbus-1/services/org.freedesktop.Notifications.service
$ sudo killall notify-osd

选修的:

$ sudo rm -f /usr/share/dbus-1/services/org.freedesktop.Notifications.service.*

现在它可以按预期工作了:

$ notify-send -t 0 foo

要恢复更改,请运行:

$ sudo apt-get install --reinstall notify-osd

相关内容