Shift를 누르면 XScreenSaver가 지연됩니다.

Shift를 누르면 XScreenSaver가 지연됩니다.

커널 버전 5.12.13 및 LXQt와 함께 Void Linux를 사용하고 있으며 XScreenSaver 6.01을 사용하여 화면을 잠그고 싶습니다.

xscreensaver-auth그러나 Shift 키를 사용하여 대문자로 쓸 때마다 XScreenSaver가 지연되기 때문에 화면에 암호를 쓰는 것은 상당히 어렵습니다 . 몇 가지 추가 정보를 알려드리겠습니다. 화면 보호기가 표시되면 키를 눌러 비밀번호 프롬프트를 표시합니다. 처음에는 약 5초 정도의 지연이 발생합니다. (다른 비밀번호와 관련이 있는지는 모르겠습니다.) 소문자 비밀번호는 문제없이 입력이 되는데, Shift(또는 Caps Lock 키)를 누르면 컴퓨터(모니터, 마우스)에서 대문자 입력이 되지 않습니다. 이전에는 약 5초 정도의 지연이 있었습니다. Shift 키를 놓을 때(또는 Caps Lock 키를 비활성화할 때) 동일한 동작이 발생합니다.

일부 프로세스에 버그가 있을 수 있지만 식별할 수 없습니다. 미국 키보드 레이아웃과 동일해서 제 키보드 레이아웃(프랑스어 키보드 레이아웃)과는 관련이 없는 것 같습니다. XScreenSaver 외부에서는 Shift 및 Caps Lock 키가 제대로 작동합니다. 그래픽 카드에는 아무런 문제가 없으며 화면 보호기가 제대로 표시됩니다.

xscreensaver다음은 이 옵션을 사용하여 시작할 때 제가 작성한 내용을 발췌한 것입니다 --verbose.

xscreensaver-auth: 19:50:34: initial effective uid/gid was root/user (0/1000)
xscreensaver-auth: 19:50:34: changed uid/gid to user/user (1000/1000)
xscreensaver-auth: 19:50:34: running as user "user"
xscreensaver-auth: 19:50:34: PAM: pam_start ("xscreensaver", "user", ...) ==> 0 (Succès)
xscreensaver-auth: 19:50:34:   pam_set_item (p, PAM_TTY, ":0") ==> 0 (Succès)
xscreensaver-auth: 19:50:34:   pam_authenticate (...) ...
xscreensaver-auth: 19:50:34:     pam_conversation (ECHO_OFF="Mot de passe : ") ...
xscreensaver-auth: 19:50:34: theme: default
xscreensaver-auth: 19:50:38: kbd layout: French
xscreensaver-auth: 19:50:38: mouse is at 719,577 on monitor 0 1600x900+0+0 "eDP1"
xscreensaver-auth: 19:50:38: re-creating window: size changed
xscreensaver-auth: 19:50:39: XI RawKeyPress  
xscreensaver-auth: 19:50:39: XKB event 2
xscreensaver-auth: 19:50:43: kbd layout: French
xscreensaver-auth: 19:50:44: XI RawKeyPress  
xscreensaver-auth: 19:50:44: XI RawKeyRelease
xscreensaver-auth: 19:50:44: XI RawKeyPress  
xscreensaver-auth: 19:50:44: XI RawKeyRelease
xscreensaver-auth: 19:50:44: XI RawKeyPress  
xscreensaver-auth: 19:50:44: XI RawKeyRelease
xscreensaver-auth: 19:50:45: XI RawKeyPress  
xscreensaver-auth: 19:50:45: XI RawKeyRelease
xscreensaver-auth: 19:50:45: XI RawKeyPress  
xscreensaver-auth: 19:50:45: XI RawKeyRelease
xscreensaver-auth: 19:50:45: XI RawKeyRelease
xscreensaver-auth: 19:50:45: XKB event 2
xscreensaver-auth: 19:50:49: kbd layout: French

19:50:39에 Shift 키를 눌렀다가 19:50:45에 놓습니다.

시스템 로깅 도움말이 활성화되었습니다.이것페이지는 표시되지만 svlogtail지연 기간 동안에는 아무것도 표시되지 않습니다.

/var/log/Xorg.0.log--- 화면 보호기를 시작하면 다음이 표시됩니다.

[ 18271.902] (EE) event5  - Logitech M215: client bug: event processing lagging behind by 4021ms, your system is too slow
[ 18271.902] (EE) client bug: timer event5 debounce: scheduled expiry is in the past (-3996ms), your system is too slow
[ 18271.902] (EE) client bug: timer event5 debounce short: scheduled expiry is in the past (-4009ms), your system is too slow
[ 18280.862] (II) event0  - AT Translated Set 2 keyboard: SYN_DROPPED event - some input events have been lost.
[ 18302.431] (II) event0  - AT Translated Set 2 keyboard: SYN_DROPPED event - some input events have been lost.

Logitech M215내 마우스야.

어떤 아이디어가 있나요?

답변1

xscreensaverDebian Bookworm 버전 6.02+dfsg1-2에서도 비슷한 문제가 발견되었습니다. 5초 지연은 아니고 밀리초 범위에 속하지만 xscreensaver대문자 비밀번호 문자를 반복해서 떨어뜨려 짜증나게 하기에는 충분합니다. 5.45에서는 이런 일이 발생하지 않았습니다.

다른 장소에 대해 이야기했습니다. https://github.com/Zygo/xscreensaver/issues/11

이는 인종을 설명하는 주석이 있는 xinput.c원인 일 수 있습니다.xinput_event_to_xlib_1

The closest thing to actual documentation on XInput2 seems to be a series
of blog posts by Peter Hutterer.  There's basically nothing about it on
www.x.org.  In http://who-t.blogspot.com/2009/07/xi2-recipes-part-4.html
he says: 

  "XIDeviceEvent [...] contains the state of the modifier keys [...]
  The base modifiers are the ones currently pressed, latched the ones
  pressed until a key is pressed that's configured to unlatch it (e.g.
  some shift-capslock interactions have this behaviour) and finally
  locked modifiers are the ones permanently active until unlocked
  (default capslock behaviour in the US layout). The effective modifiers
  are a bitwise OR of the three above - which is essentially equivalent
  to the modifiers state supplied in the core protocol events."

However, I'm seeing random noise in the various XIDeviceEvent.mods fields.
Nonsensical values like base = 0x6045FB3D.  So, let's poll the actual
modifiers from XQueryPointer.  This can race: maybe the modifier state
changed between when the server generated the keyboard event, and when
we receive it and poll.  However, if an actual human is typing and
releasing their modifier keys on such a tight timeframe... that's
probably already not going well.

I'm also seeing random noise in the event_xy and root_xy fields in
motion events.  So just always use XQueryPointer.

내 키보드에는 '시간 경색'을 설명하는 '클릭 레이어'가 있습니다.

편집: Jamie Zawinski(xscreensaver 작성자)와 몇 가지 이메일을 디버깅하고 교환한 후 duplicate_xinput_event_p패치를 적용 했습니다 xinput.c. 업스트림에서 유사하거나 다른 방식으로 수정될 수 있습니다. 그동안 링크된 github에 패치를 게시하겠습니다(여기에 게시하기에는 너무 큰 것 같습니다).

관련 정보