我把“5分钟后离开”写在:
Gajim
-> Preferences
-> Status这基本上和预期的一样:在5分钟的不活动之后,我的状态自动改变为“离开”。当我返回并移动鼠标或在键盘上键入时,状态会更改为“可用”。
但它只在95%的时间起作用。有时,我回来,移动鼠标,但状态不会改变为“可用”。
这是非常恼人的,因为我必须始终检查我的状态是否改变了每次我回来。
为什么它有时起作用,但并不总是起作用?什么会影响这种行为?这仅仅是Gajim中的一个bug,还是我的系统中有什么可以做的来解决这个问题呢?
我正在使用Debian Buster和gajim 1.1.2-2
为什么这么简单的事情不能可靠地工作呢?
我使用普通Openbox作为窗口管理器,使用slim作为登录管理器。我确实在运行dbus守护进程。
但我没有任何Gnome/KDE/..。桌面环境。我也没有任何屏幕保护程序
发布于 2020-05-22 11:13:11
在你用细节更新问题之前,我就试着回答你的问题。
在gajim中有这样的闲置状态:
@unique
class IdleState(IntEnum):
UNKNOWN = 0
XA = 1
AWAY = 2
AWAKE = 3您通常只考虑AWAKE或AWAY。UNKNOWN状态是一个泛型状态,当您没有从_get_idle_monitor获得任何结果时就设置它(参见下面)。XA状态是一个扩展的离开-屏幕是锁定的或者你有一个屏幕保护程序(只对Windows来说,有趣的是当你在Gnome上或者使用XScreenSaver时你不能在extended上(它总是错误的))。
这就是gajim决定你是否还在闲逛的原因:
def _get_idle_monitor(self):
if sys.platform == 'win32':
return WindowsIdleMonitor()
try:
return DBusGnomeIdleMonitor()
except GLib.Error as error:
log.info('Idle time via D-Bus not available: %s', error)
try:
return XssIdleMonitor()
except OSError as error:
log.info('Idle time via XScreenSaverInfo '
'not available: %s', error)由于您可能没有使用Windows,所以我将介绍DBusGnomeIdleMonitor和XssIdleMonitor。
如果您正在使用Gnome,那么您可能正在使用代码的这一部分。我建议您使用登录调试模式,以便从代码的这一部分获取所有消息。
如果您看到这条消息:
except GLib.Error as error:
log.warning(
'org.gnome.Mutter.IdleMonitor.GetIdletime() failed: %s',
error)然后gajim在从您的环境中获取空闲时间时会遇到问题(很难说是什么原因--可能DBus没有正确工作)。当然,您也可以看到log.info('Idle time via D-Bus not available: %s', error)消息。
在这里,如果您正在使用log.info('Idle time via XScreenSaverInfo not available: %s', error)消息,您应该会看到它。代码的这一部分可以生成OSError消息,这通常发生在您的XScreenSaver或系统不知何故缺少它的一个重要部分时。
您可以获得的错误消息:
if libX11path is None:
raise OSError('libX11 could not be found.')
if libXsspath is None:
raise OSError('libXss could not be found.')
if self.dpy_p is None:
raise OSError('Could not open X Display.')
if extension == 0:
raise OSError('XScreenSaver Extension not available on display.')
if self.xss_info_p is None:
raise OSError('XScreenSaverAllocInfo: Out of Memory.')如果您正在使用Gnome,并且它并不总是工作,我将尝试安装XScreenSaver --也许这将是检测您的活动的更可靠的方法。
发布于 2020-05-23 23:24:28
我已经经历了完全相同的问题,运行一个最小的侏儒设置!就我的情况而言,解决办法如下:
apt install dbus-X11
dbus-launch gajim显然,单独安装dbus并不会激活它,除非您跳过一些额外的环,或者其他什么东西。老实说,我不知道D总线是怎么工作的,也不知道为什么它需要¯\_(ツ)_/¯
https://unix.stackexchange.com/questions/587818
复制相似问题