请注意:这不是听起来类似的常见问题,涉及多头显示器。这个问题是关于两台不同的计算机。
如果我登录到两台不同计算机的控制台,sitting at.example.com和sshed-into.example.com,然后坐在sitting-at.example.com前面,我使用ssh (使用X11隧道)进入sshed-into.example.com……
如果我这样做了,然后运行一个使用libnotify的小Python脚本,通知就会在sshed into.example.com的控制台上弹出,而不是sitting at.example.com。但我需要在sitting at.example.com上的通知。在我看来,这样做更有意义。
结果是,我没有看到通知,直到我开车到另一个位置并重新登录到sshed-into.example.com的控制台。
如果libnotify引发异常,我的代码会使用一个小的GTK弹出窗口,但它不起作用,因为就libnotify而言,一切都运行得很好。
我可以像以前一样一直使用GTK弹出窗口,但我喜欢在可行的情况下使用libnotify。首先,如果我点击一个不同的虚拟桌面或者在不合适的时候打开一个窗口,libnotify不会丢失。GTK弹出窗口执行此操作。
有没有一种方法可以使用libnotify获取远程通知,或者使用xor获取异常?
我曾考虑过解析$DISPLAY,看看它是否“看起来像本地的”,但似乎应该有更好的方法。
提前感谢!
PS:这个小脚本的代码是开源的,可以在http://stromberg.dnsalias.org/~strombrg/notify-when-up2.html上找到
发布于 2019-02-25 11:04:43
我最终检查了$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)https://stackoverflow.com/questions/54728859
复制相似问题