1

请注意:这不是涉及多头显示器的类似常见问题解答。这个问题是关于两台不同的计算机的。

如果我登录到两台不同计算机的控制台,即 sit-at.example.com 和 sshed-into.example.com,然后坐在 sit-at.example.com 前面,我 ssh(使用 X11 隧道)进入 sshed-进入.example.com...

如果我这样做,然后运行一个使用 libnotify 的小 Python 脚本,通知会在 sshed-into.example.com 的控制台上弹出,而不是在 sit-at.example.com 上。但我需要在 sit-at.example.com 上收到通知。在我看来,这会更有意义。

结果是在我开车到另一个位置并重新登录到 sshed-into.example.com 的控制台之前,我看不到通知。

如果 libnotify 引发异常,我的代码可以使用一个小 GTK 弹出窗口,但它不会启动,因为就 libnotify 而言,一切正常。

我可以一直使用 GTK 弹出窗口,就像我以前一样,但我有点喜欢 libnotify 在可行的情况下。一方面,如果我单击不同的虚拟桌面或在不合时宜的时刻打开窗口,libnotify 不会丢失。GTK 弹出窗口确实如此。

有没有办法使用 libnotify 获取远程通知,或者获取异常?

我考虑过解析 $DISPLAY 以查看它是否“看起来像本地”,但似乎应该有更好的方法。

提前致谢!

PS:小脚本的代码是开源的,可以在http://stromberg.dnsalias.org/~strombrg/notify-when-up2.html找到

4

1 回答 1

0

我最后检查了 $DISPLAY,因为这里的响应并没有快速流动。

我使用的功能:

def is_local_display(regex=re.compile(r'^:0(\.[0-9]+)?$')):
    """Return True iff $DISPLAY points at a local display."""
    if 'DISPLAY' not in os.environ:
        return False
    match = regex.match(os.environ['DISPLAY'])
    return bool(match)
于 2019-02-25T03:04:43.170 回答