我认为您会混淆各种技术及其工作方式。我不希望一个系统的通知守护程序可以通过SSH发送消息。设置$DISPLAY
X11将X11从应用程序发送输出到另一个用于显示目的的方式设置了,但是notify-send
正在将实际消息发送到通知守护程序。该消息是使用libnotify
库发送的。
摘抄
libnotify是一个库,用于将桌面通知发送到通知守护程序,如桌面通知规范中所定义。这些通知可用于通知用户有关事件的信息或显示某种形式的信息,而不会妨碍用户的使用。
资料来源:https : //developer.gnome.org/libnotify/
每应用程式方式
将notify-send
消息加入本地系统的通知程序的一种方法是使用此博客文章概述的方法:通过SSH进行IRC通知和libnotify。对于每种您想通过隧道返回本地通知程序的通知类型,都需要自定义此方法。
通过SSH隧道libnotify
对于更通用的解决方案libnotify-over-ssh
,您可能正在寻找更多。
摘抄
这是我编写的客户端服务器perl脚本,因此服务器实际上可以将libnotify消息发送到本地计算机。我主要在weechat中使用此功能,但具有使其更通用的功能。当使用weechat标签调用客户端时,服务器将检查当前焦点窗口的名称。如果以weechat开头,则在未调用notify-send的情况下抑制通知。
在远程服务器上显示
另一方面,如果您只是想用来notify-send
在用来ssh
连接的远程服务器上显示消息,则可能需要遵循此问题与解答中标题为“ 使用通知发送 ”的建议之一。与cron。即使有几个答案表明这是不必要的,但我还是必须按照在使用Cinnamon作为桌面的Fedora 20系统的注释中提到的其他方式进行以下操作,以使工作正常进行。
要开始notify-send
工作,我必须在远程系统的桌面环境中使用适当的值设置此变量。
$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-wzrbFpDUZQ,guid=82e5bffe1f819506faecc77a53d3ba73
在我的系统上,我能够使用为此目的维护的文件。
$ ssh me@remote
$ source ~/.dbus/session-bus/6a34f24f9c504e3f813bc094ed0b67af-0
$ notify-send "hi"
注意: DBUS文件的名称将在会话之间更改。
DISPLAY=:0 notify-send 'hello'
(对aikeru而言)(而不是对aikeru)有用,请尝试更复杂的步骤。