请注意:这不是涉及多头显示的类似声音的常见问题。这个问题是关于两台不同的计算机。
如果我登录到两台不同计算机的控制台上,即坐在ating-example.com和sshed-into.example.com,然后坐在sating-at.example.com的前面,则使用SSH(使用X11隧道)进入sshed-into.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
找到答案 0 :(得分: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)