You are not logged in.

#1 2017-02-01 08:20:24

Herodotus
Member
Registered: 2015-06-16
Posts: 24

keypress is delayed to keyrelease on rotated screen in xorg 1.19

Hello,

I'm trying to figure out how to downgrade xorg-server. The problem I'm experiencing is that when I press a key, the "KeyPress" event is not sent until the key is released, or ~200ms passes (my subjective timer, could be way off), whichever comes first. This problem only happens when I send input to a display which I've rotated using xrandr, e.g.:

xrandr --output LVDS1 --rotate right

On a two-screen setup, I can have one display rotated and the other normal. On the rotated display, I experience the key lag bug, but on the normal display I don't. When I move a terminal from the normal to the rotated display, the bug appears, and when I move it back it disappears. When I run "xev" on the normal display and put the xev window on the rotated display and type in the window, there is no lag. However, when I move the terminal where I executed the "xev" command to the rotated display, the lag appears again. Using "xev", we see that "KeyPress" is generated when I release a key, and "KeyRelease" comes after a timeout of some fraction of a second after "KeyPress".

I have a laptop which I have not updated in a few weeks, and it does not give me key lag (even after rotating the display). The Xorg version on the laptop is "xorg-server 1.18.4-1". The version on my desktop and other laptop, both of which experience the bug, is "xorg-server 1.19.1-1".

I'm assuming that the problem comes from Xorg since e.g. 'udev' does not know about X screens, I don't experience the problem on the console, and so on. I experience the problem with two window managers: i3 and fvwm; and with two terminals: urxvt and xterm.

If anyone can replicate, that would be useful to know. However, my main question, for my own selfish purposes, is how do I downgrade Xorg - because I like that vertical screen real estate and I am not going to be satisfied with a laggy keyboard input device. I'm under the impression that this is a shortcoming of Arch, that downgrades are not very easy, particularly for packages with a lot of dependencies like xorg-server. Here's my attempt so far:

$ sudo pacman -U xorg-server-1.18.4-1-x86_64.pkg.tar.xz
loading packages...
warning: downgrading package xorg-server (1.19.1-1 => 1.18.4-1)
resolving dependencies...
warning: cannot resolve "xf86-input-driver", a dependency of "xorg-server"
:: The following package cannot be upgraded due to unresolvable dependencies:
      xorg-server

:: Do you want to skip the above package for this upgrade? [y/N] 
error: failed to prepare transaction (could not satisfy dependencies)
:: xorg-server: requires xf86-input-driver
[1]$ ls xf86-input-*
xf86-input-evdev-2.10.1-3-x86_64.pkg.tar.xz  xf86-input-keyboard-1.8.1-2-x86_64.pkg.tar.xz
xf86-input-evdev-2.10.2-1-x86_64.pkg.tar.xz  xf86-input-keyboard-1.9.0-1-x86_64.pkg.tar.xz
xf86-input-evdev-2.10.3-1-x86_64.pkg.tar.xz  xf86-input-keyboard-1.9.0-2-x86_64.pkg.tar.xz
xf86-input-evdev-2.10.4-1-x86_64.pkg.tar.xz  xf86-input-libinput-0.23.0-1-x86_64.pkg.tar.xz
xf86-input-evdev-2.10.5-1-x86_64.pkg.tar.xz

I can't find "xf86-input-driver" among the packages so I'm stuck. How do I go back to the working version of xorg-server?

Thanks.

------

Log files:

Xorg.0.log: http://ix.io/1REQ
dmesg: http://ix.io/1REU

The USB resets in dmesg are from a crontab and have nothing to do with this bug.

Last edited by Herodotus (2017-02-01 08:30:20)

Offline

#2 2017-02-02 00:00:27

Herodotus
Member
Registered: 2015-06-16
Posts: 24

Re: keypress is delayed to keyrelease on rotated screen in xorg 1.19

Here's what I ended up doing to downgrade:

cd /var/cache/pacman/pkg
sudo pacman -U \
    xf86-input-evdev-2.10.4-1*xz \
    xorg-server-*18.4-1*.pkg*xz \
    xf86-video-intel-1:2.99.917+746*xz

It works now.

Recent xf86-input-evdev packages (e.g. 2.10.4) have a "provides = xf86-input-driver" line in .PKGINFO, which allows it to satisfy the dependency.

A friend pointed out that you can use 'agetpkg' from AUR to find packages which are not in /var/cache/pacman/pkg ...

Offline

Board footer

Powered by FluxBB