Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#1004946: Cannot hold down backspace to delete password

23 views
Skip to first unread message

martin f krafft

unread,
Feb 4, 2022, 1:40:04 AM2/4/22
to

Package: xscreensaver
Version: 6.02+dfsg1-2
Severity: normal

If I know I mistyped the password, I am used to holding down backspace to erase all characters, effectively making use of the key repeat. This stopped working with version 6, and now holding down the key only ever removes a single character.

-- System Information:
Debian Release: bookworm/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.15.0-3-amd64 (SMP w/8 CPU threads)
Kernel taint flags: TAINT_WARN, TAINT_FIRMWARE_WORKAROUND
Locale: LANG=en_NZ, LC_CTYPE=en_NZ.UTF-8 (charmap=UTF-8), LANGUAGE=en_NZ:en
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages xscreensaver depends on:
ii init-system-helpers 1.61
ii libatk1.0-0 2.36.0-3
ii libc6 2.33-5
ii libcrypt1 1:4.4.27-1.1
ii libglib2.0-0 2.70.3-1
ii libgtk2.0-0 2.24.33-2
ii libpam0g 1.4.0-11
ii libpango-1.0-0 1.50.3+ds1-6
ii libsystemd0 250.3-2
ii libx11-6 2:1.7.2-2+b1
ii libxext6 2:1.3.4-1
ii libxft2 2.3.2-2
ii libxi6 2:1.8-1
ii libxinerama1 2:1.1.4-2
ii libxml2 2.9.12+dfsg-5+b1
ii libxrandr2 2:1.5.2-1
ii libxt6 1:1.2.0-1
ii libxxf86vm1 1:1.1.4-1+b2
ii xscreensaver-data 6.02+dfsg1-2

Versions of packages xscreensaver recommends:
ii gsfonts-x11 0.28
ii libjpeg-turbo-progs 1:2.1.2-1
ii perl 5.32.1-6
ii wamerican [wordlist] 2020.12.07-2
ii xfonts-100dpi 1:1.0.4+nmu1.1

Versions of packages xscreensaver suggests:
ii chromium [www-browser] 97.0.4692.99-1
ii elinks [www-browser] 0.13.2-1+b2
ii firefox [www-browser] 96.0.3-1
ii fortune-mod [fortune] 1:1.99.1-7.1
pn gdm3 | kdm-gdmcompat <none>
ii lynx [www-browser] 2.9.0dev.10-1
pn qcam | streamer <none>
ii w3m [www-browser] 0.5.3+git20210102-6
pn xdaliclock <none>
pn xfishtank <none>
pn xscreensaver-data-extra <none>
ii xscreensaver-gl 6.02+dfsg1-2
pn xscreensaver-gl-extra <none>

-- no debconf information

--
 .''`.   martin f. krafft &lt;madduck@d.o&gt; @martinkrafft  
: :'  :  proud Debian developer  
`. `'`   http://people.debian.org/~madduck  
  `-  Debian - when you have better things to do than fixing systems  

Jamie Zawinski

unread,
Feb 4, 2022, 2:11:04 AM2/4/22
to
For some reason, the XInput2 extension doesn't auto-repeat certain keys that used to auto-repeat when read the "old" way. Unfortunately there's nothing I can do about this. I process only the keystrokes that I receive.

However you can use the traditional keystrokes ^U and ^X to clear the whole line.

--
Jamie Zawinski https://www.jwz.org/ https://www.dnalounge.com/

Daniel Kahn Gillmor

unread,
Feb 11, 2022, 12:00:03 PM2/11/22
to
Control: reopen 1004946
Control: reassign 1004946 libxi6 2:1.8-1
Control: affects 1004946 + xscreensaver

On Fri 2022-02-04 07:29:55 +0100, martin f krafft wrote:
> Package: xscreensaver
> Version: 6.02+dfsg1-2
> Severity: normal
>
> If I know I mistyped the password, I am used to holding down
> backspace to erase all characters, effectively making use of the key
> repeat. This stopped working with version 6, and now holding down
> the key only ever removes a single character.

On Thu 2022-02-03 22:59:34 -0800, Jamie Zawinski wrote:

> For some reason, the XInput2 extension doesn't auto-repeat certain
> keys that used to auto-repeat when read the "old" way. Unfortunately
> there's nothing I can do about this. I process only the keystrokes
> that I receive.
>
> However you can use the traditional keystrokes ^U and ^X to clear the
> whole line.

As i understand it, XInput2 is provided by libxi6, from the libxi source
package.

This is a significant regression in user experience, and definitely
something confusing for users who see the backspace key and don't
understand why it's not repeating as expected. Ctrl-U or Ctrl-X might
be an acceptable workaround for weirdos like the three of us, but it is
decidedly user-unfriendly for a screensaver to work this way. Holding
down backspace to clear screwed up keystrokes is an incredibly common
usage pattern for password entry fields.

If the regression is caused by changes in how XInput/XInput2 behave,
then maybe this problem should be addressed in that package. I'm
reassigning this report there and marking that it affects xscreensaver.

--dkg
signature.asc

Jamie Zawinski

unread,
Feb 11, 2022, 12:30:03 PM2/11/22
to
On Feb 11, 2022, at 8:51 AM, Daniel Kahn Gillmor <d...@debian.org> wrote:
>
> If the regression is caused by changes in how XInput/XInput2 behave,
> then maybe this problem should be addressed in that package. I'm
> reassigning this report there and marking that it affects xscreensaver.

I have no reason to believe that XInput2 has not always behaved that way. You are noticing it now because XScreenSaver only began using XInput2 as of 6.x.

Stating the problem/annoyance more concisely:

XInput2 does not send auto-repeat press/release events in the same manner as XNextEvent.

Daniel Kahn Gillmor

unread,
Feb 12, 2022, 10:10:04 AM2/12/22
to
On Fri 2022-02-11 09:16:09 -0800, Jamie Zawinski wrote:
> On Feb 11, 2022, at 8:51 AM, Daniel Kahn Gillmor <d...@debian.org> wrote:
>>
>> If the regression is caused by changes in how XInput/XInput2 behave,
>> then maybe this problem should be addressed in that package. I'm
>> reassigning this report there and marking that it affects xscreensaver.
>
> I have no reason to believe that XInput2 has not always behaved that way. You are noticing it now because XScreenSaver only began using XInput2 as of 6.x.
>
> Stating the problem/annoyance more concisely:
>
> XInput2 does not send auto-repeat press/release events in the same manner as XNextEvent.

Thanks for the prompt feedback, Jamie!

If you're saying that XInput2 *cannot* send auto-repeat press/release
events, and no tool that uses XInput2 can handle auto-repeating keys,
that seems like a problem with XInput2 -- hence the transfer of the bug.

If you're saying that XScreenSaver is not interpreting the signal of a
held-down backspace key, then it seems like a bug in XScreenSaver to me.

If neither of those is the case, then i'm not understanding the
conversation on this bug report, only observing that the problem for
users still remains.

Regards,

--dkg
signature.asc

Jamie Zawinski

unread,
Feb 12, 2022, 1:00:03 PM2/12/22
to
When an X11 client reads X11-core events of type KeyPress and KeyRelease, a held-down key will result in a series of synthetic release/press events to make it look like the key was pressed multiple times. The initial delay and repeat rate are configured in the X server by xset and/or xkbset. Also, not all keys auto-repeat.

When that same X11 client reads XInput2-extension events of type XI_RawKeyPress and XI_RawKeyRelease, a held-and-released key results in exactly 2 events, no matter how long it was held. The XInput2 server extension ignores the server auto-repeat settings.

It is unreasonable to expect an X11 client to hack auto-repeat by itself. This is a server-side configuration issue.

Also this is far from the only problem with XInput2's keyboard event handling. See the comments in xscreensaver/driver/xinput.c for a laundry list of its bugs.

martin f krafft

unread,
Feb 13, 2022, 4:40:03 AM2/13/22
to

Regarding the following, written by "Jamie Zawinski" on 2022-02-12 at 09:55 Uhr -0800:

Also this is far from the only problem with XInput2's keyboard event handling. See the comments in xscreensaver/driver/xinput.c for a laundry list of its bugs.

Why did you switch to it? Or am I misunderstanding that you did?

--
  .''`.   martin f. krafft &lt;madduck@d.o&gt; @martinkrafft  
: :'  :  proud Debian developer  
`. `'`   http://people.debian.org/~madduck
  
   `-  Debian - when you have better things to do than fixing systems  
  
"i feel sorry for people who don't drink. when they wake up in the  
  morning, that's as good as they're going to feel all day."  
                                                     -- frank sinatra  

Jamie Zawinski

unread,
Feb 13, 2022, 11:30:03 AM2/13/22
to
> Why did you switch to it? Or am I misunderstanding that you did?

For the new security model. No other way to increase the privilege separation.

Daniel Kahn Gillmor

unread,
Feb 14, 2022, 11:50:03 AM2/14/22
to
Control: forwarded 1004946 https://gitlab.freedesktop.org/xorg/lib/libxi/-/issues/13

On Sun 2022-02-13 08:26:24 -0800, Jamie Zawinski wrote:
>> Why did you switch to it? Or am I misunderstanding that you did?
>
> For the new security model. No other way to increase the privilege separation.

Thanks for these explanations, I think I understand the situation better
now. I've forwarded the concern upstream at the link above. Maybe the
libXi devs will be able to address the problem, or at least propose an
alternate solution that lets XScreenSaver retain the privilege
separation and the user-friendly key repeat functionality.

--dkg
signature.asc
0 new messages