다음에서 '5분 후에 출발'을 설정했습니다.
Gajim
-> Preferences
-> Status
이는 기본적으로 예상대로 작동합니다. 5분 동안 활동이 없으면 상태가 자동으로 "자리 비움"으로 변경됩니다. 돌아와서 마우스를 움직이거나 키보드를 입력하면 상태가 다시 "사용 가능"으로 변경됩니다.
그러나 그것은 95%의 시간에만 작동합니다. 가끔 돌아와서 마우스를 움직여도 상태가 "사용 가능"으로 변경되지 않습니다.
돌아올 때마다 내 상태가 바뀌었는지 확인해야 해서 매우 귀찮습니다.
때로는 작동하지만 항상 작동하지 않는 이유는 무엇입니까? 이 행동에 영향을 미치는 것은 무엇입니까? 이것은 단지 내 시스템의 버그인가요 Gajim
, 아니면 내 시스템에 이 문제를 해결할 수 있는 기능이 있나요?
나는 사용하고 Debian Buster
있으며gajim 1.1.2-2
왜 그렇게 간단한 것이 안정적으로 작동하지 않습니까?
편집하다
저는 창 관리자와 slim
로그인 관리자로 일반 Openbox를 사용합니다. dbus 데몬이 실행 중입니다.
하지만 Gnome/KDE/... 데스크탑 환경이 없습니다. 나도 스크린 세이버가 없어
답변1
세부 사항으로 질문을 업데이트하기 전에도 귀하의 질문에 답변하려고 노력할 것입니다.
분석하다
이것들이 있다유휴 상태가짐에서는:
@unique
class IdleState(IntEnum):
UNKNOWN = 0
XA = 1
AWAY = 2
AWAKE = 3
당신은 보통 AWAKE
또는 에 대해서만 생각합니다 AWAY
. 이 UNKNOWN
상태는 결과를 얻지 못할 때 설정되는 일반적인 상태입니다 _get_idle_monitor
(아래 참조). XA
상태는 확장된 자리 비움입니다. 화면이 잠겨 있거나 화면 보호기가 있습니다(Windows에만 해당됩니다. 흥미롭게도 Gnome을 사용하거나 XScreenSaver를 사용할 때는 확장된 자리 비움 상태에 있을 수 없습니다(항상 잘못된 상태입니다).
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 설치아마도 이것이 귀하의 활동을 감지하는 더 안정적인 방법일 것입니다.
답변2
최소한의 Gnomeless 설정을 실행해도 똑같은 문제가 발생했습니다! 내 경우 해결책은 다음과 같았다.
apt install dbus-X11
dbus-launch gajim
분명히 dbus
추가 후프 등을 통과하지 않는 한 단독으로 설치하면 활성화되지 않습니다. 솔직히 말해서 D-Bus가 어떻게 작동하는지, 왜 필요한지 전혀 모르겠습니다.¯\_(ツ)_/¯