也许这是在其他地方回答的,但我没有看到。
我正在运行 Ubuntu 14.04。例如,当我通过 SSH 连接到我的机器时:
ssh <user>@<machineip> notify-send "Hello"
Run Code Online (Sandbox Code Playgroud)
我在登录到机器的监视器上没有看到任何内容。如果我前缀notify-send
与DISPLAY=:0.0
或DISPLAY=:0
没有不同情况。我只是从未在当前会话中看到任何通知。
是否有一些技巧/开关可以让这个工作?
如果不清楚,请允许我重申:从计算机 A,我通过 SSH 连接到计算机 B。在 SSH 会话中,我希望执行 notify-send 以在计算机 B 上运行。我希望出现咆哮类型的通知在计算机 B 的显示器上。
slm*_*slm 11
我认为您混淆了各种技术及其工作方式。我不希望来自一个系统的通知守护程序可以通过 SSH 发送消息。设置$DISPLAY
是 X11 将输出从应用程序发送到另一个用于显示目的的方式,但它notify-send
正在向通知守护程序发送实际消息。此消息是使用libnotify
库发送的。
libnotify 是一个将桌面通知发送到通知守护程序的库,如桌面通知规范中所定义。这些通知可用于通知用户有关事件或显示某种形式的信息,而不会妨碍用户。
来源:https : //developer.gnome.org/libnotify/
将notify-send
消息加入到本地系统的通知程序的一种方法是使用此博客文章中概述的方法:通过 SSH 和 libnotify 的 IRC 通知。这种方法需要根据您希望通过隧道返回到本地通知程序的每种类型的通知进行自定义。
对于更通用的解决方案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
Run Code Online (Sandbox Code Playgroud)
在我的系统上,我能够使用为此目的而维护的文件。
$ ssh me@remote
$ source ~/.dbus/session-bus/6a34f24f9c504e3f813bc094ed0b67af-0
$ notify-send "hi"
Run Code Online (Sandbox Code Playgroud)
注意: DBUS 文件的名称会因会话而异。
归档时间: |
|
查看次数: |
12224 次 |
最近记录: |