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

2024-05-16 09:29:15 发布

您现在位置:Python中文网/ 问答频道 /正文

请注意:这不是类似的常见问题,涉及到一个多头显示。这个问题是关于两台不同的计算机。你知道吗

如果我登录到两台不同电脑的控制台-网址:example.com然后擦干了-进入.example.com,然后坐在前面-网址:example.com我ssh(使用X11隧道)进入sshed-进入.example.com... 你知道吗

如果我这样做,然后运行一个使用libnotify的小Python脚本,通知就会在sshed的控制台上弹出-进入.example.com,不是坐着-网址:example.com. 但我需要坐牢的通知-网址:example.com. 在我看来这更有道理。你知道吗

结果是直到我开车到另一个位置并重新登录到sshed的控制台,我才看到通知-进入.example.com. 你知道吗

如果libnotify引发异常,我的代码有一个回退,可以使用一个小的GTK弹出窗口,但它没有启动,因为就libnotify而言,一切都正常。你知道吗

我可以像以前一样一直使用GTK弹出窗口,但我有点喜欢libnotify。首先,如果我在不合适的时候点击另一个虚拟桌面或打开一个窗口,libnotify不会迷路。GTK弹出窗口不显示。你知道吗

有没有一种方法可以使用libnotify获取远程通知,或者xor获取异常?你知道吗

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

提前谢谢!你知道吗

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


Tags: 方法代码脚本comgtkexample计算机ssh
1条回答
网友
1楼 · 发布于 2024-05-16 09:29:15

我最后检查了$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)

相关问题 更多 >