首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libnotify通知控制台,而不是$DISPLAY?

libnotify通知控制台,而不是$DISPLAY?
EN

Stack Overflow用户
提问于 2019-02-17 07:59:31
回答 1查看 96关注 0票数 1

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

如果我登录到两台不同计算机的控制台,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上找到

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-25 11:04:43

我最终检查了$DISPLAY,因为这里的响应并不是密集和快速的。

我使用的函数:

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54728859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档