libnotify 通知控制台,而不是 $DISPLAY?
libnotify notifies the console, not $DISPLAY?
请注意:这不是涉及多头显示器的类似常见问题解答。这个问题是关于两台不同的电脑。
如果我登录到两台不同电脑的控制台,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.但是我需要坐着的通知-at.example.com。在我看来,这更有意义。
结果是我没有看到通知,直到我开车到另一个位置并重新登录到 sshed-into.example.com 的控制台。
如果 libnotify 引发异常,我的代码会回退使用一个小的 GTK 弹出窗口,但它不会启动,因为就 libnotify 而言,一切正常。
我可以像以前一样一直使用 GTK 弹出窗口,但在可行的情况下我有点喜欢 libnotify。一方面,如果我单击不同的虚拟桌面或在不合时宜的时刻发出 window,libnotify 不会丢失。 GTK 弹出窗口会。
有没有办法使用 libnotify 获取远程通知,或者获取异常?
我考虑过解析 $DISPLAY 看它是否 "looks local",但似乎应该有更好的方法。
提前致谢!
PS:小脚本的代码是开源的,可以在 http://stromberg.dnsalias.org/~strombrg/notify-when-up2.html
找到
我最后检查了 $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)
请注意:这不是涉及多头显示器的类似常见问题解答。这个问题是关于两台不同的电脑。
如果我登录到两台不同电脑的控制台,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.但是我需要坐着的通知-at.example.com。在我看来,这更有意义。
结果是我没有看到通知,直到我开车到另一个位置并重新登录到 sshed-into.example.com 的控制台。
如果 libnotify 引发异常,我的代码会回退使用一个小的 GTK 弹出窗口,但它不会启动,因为就 libnotify 而言,一切正常。
我可以像以前一样一直使用 GTK 弹出窗口,但在可行的情况下我有点喜欢 libnotify。一方面,如果我单击不同的虚拟桌面或在不合时宜的时刻发出 window,libnotify 不会丢失。 GTK 弹出窗口会。
有没有办法使用 libnotify 获取远程通知,或者获取异常?
我考虑过解析 $DISPLAY 看它是否 "looks local",但似乎应该有更好的方法。
提前致谢!
PS:小脚本的代码是开源的,可以在 http://stromberg.dnsalias.org/~strombrg/notify-when-up2.html
找到我最后检查了 $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)