Touchscreen Issues

So I have a secondary monitor (asus proart touchscreen) and it was initially working just fine. It would track my finger inputs and basically just work like you'd expect. Randomly one day, it stopped working. I have tried multiple troubleshooting solutions found on this forum but none worked...so far at least.

Here's the weird thing, using multi finger gestures such as three finger swipes works. It is only single finger touch that doesn't seem to register. So I know the screen is picking up the touch but for some reason, refuses to work with single finger input.

Has anyone had this problem and/ or know of a solution? My Zorin Desktop is utilizing x11, not wayland.

Could be another case of the dreaded update to 6.17 kernel. Suggest you test by booting an older 6.14 kernel.

Do a Restart
then from grub menu item "Additional Options for Zorin".
select a 6.14...kernel generic version.
Boot that and test.

2 Likes

Can you relay the terminal output of:

libinput list-devices

and

xinput list

I wonder if LibInput is treating it as a mouose, rather than touch on display.

Thanks. Just tried this but it did not work unfortunately. Same results. Single finger touch (dragging and selecting) doesn't work but multi-finger function somehow.

I even tried timeshifting back to the earliest save, but no luck there either.

I am totally stumped as to what could be causing this issue...but if you or anyone have any other suggestions or ideas it would be very much appreciated!

here are my outputs below

libinput list-devices:

Device: Power Button
Kernel: /dev/input/event1
Group: 1
Seat: seat0, default
Capabilities: keyboard
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: n/a
Middle emulation: n/a
Calibration: n/a
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles: n/a
Rotation: 0.0

Device: Power Button
Kernel: /dev/input/event0
Group: 2
Seat: seat0, default
Capabilities: keyboard
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: n/a
Middle emulation: n/a
Calibration: n/a
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles: n/a
Rotation: 0.0

Device: ELAN Touchscreen
Kernel: /dev/input/event18
Group: 3
Seat: seat0, default
Size: 319x179mm
Capabilities: touch
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: n/a
Middle emulation: n/a
Calibration: identity matrix
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles: n/a
Rotation: 0.0

Device: Logitech G502 HERO Gaming Mouse
Kernel: /dev/input/event2
Group: 4
Seat: seat0, default
Capabilities: pointer
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: disabled
Nat.scrolling: disabled
Middle emulation: disabled
Calibration: n/a
Scroll methods: button
Click methods: none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles: flat *adaptive custom
Rotation: 0.0

Device: Logitech G502 HERO Gaming Mouse Keyboard
Kernel: /dev/input/event3
Group: 4
Seat: seat0, default
Capabilities: keyboard pointer
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: disabled
Middle emulation: n/a
Calibration: n/a
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles: n/a
Rotation: 0.0

Device: Corsair Corsair Gaming K55 RGB Keyboard
Kernel: /dev/input/event4
Group: 5
Seat: seat0, default
Capabilities: keyboard pointer
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: disabled
Middle emulation: n/a
Calibration: n/a
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles: n/a
Rotation: 0.0

xinput list:

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech G502 HERO Gaming Mouse id=8 [slave pointer (2)]
⎜ ↳ Logitech G502 HERO Gaming Mouse Keyboard id=9 [slave pointer (2)]
⎜ ↳ Corsair Corsair Gaming K55 RGB Keyboard id=10 [slave pointer (2)]
⎜ ↳ ELAN Touchscreen id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Logitech G502 HERO Gaming Mouse Keyboard id=11 [slave keyboard (3)]
↳ Corsair Corsair Gaming K55 RGB Keyboard id=12 [slave keyboard (3)]

It is correctly recognizing it...
Can you run

sudo libinput debug-events

Then tap the display with one finger and relay what the terminal prints?

Yes, I actually tried this earlier and it does give me outputs as I touch the screen.
When I touch the screen it gives:
event 18 TOUCH_FRAME
event 18 TOUCH_MOTION

then of course, all the coordinates beside those events.

Recognized and working...
What about

xrandr --listmonitors

0: +*DP-4 3840/890x1600/390+1920+0 DP-4
1: +HDMI-0 1920/309x1080/174+0+0 HDMI-0

HDMI-0 is the touchscreen

Ok, let's try mapping the action to that monitor:

xinput map-to-output "ELAN Touchscreen" HDMI-0

Then touch screen with a tap to test.

Just tried that and nothing happens when I tap.

Sigh.... I know that Gnome really wants us on Wayland.
And I know that Gnome Desktop can intercept touch events.

And I know that Gnome is providing a desktop that "encourages" using Wayland by "breaking things in X11" that always worked before.

Have you tested if it does work on Wayland?
Otherwise...

ps aux | grep -E "gesture|libinput|fusuma"

And let's see if it is Gnome...

So this is what I got. Still no screen response either.

ps aux | grep -E "gesture|libinput|fusuma"
zero 49175 0.0 0.0 14768 2340 pts/2 S+ 21:35 0:00 grep --color=auto -E gesture|libinput|fusuma

Next command, lol

xinput list-props "ELAN Touchscreen" | grep "Send Events"

We can see if we can set it to the right events.

libinput Send Events Modes Available (259): 1, 0
libinput Send Events Mode Enabled (260): 1, 0
libinput Send Events Mode Enabled Default (261): 0, 0

Edit: and I forgot to say still no luck with the touch..hah

Wow.
So... The device is recognized. Driver is loaded. Events are logged. And... modes are enabled.
I am already stumped.

Turning to the internet.... I found:

sudo nano /etc/X11/xorg.conf.d/99-touchscreen.conf

Section "InputClass"
    Identifier "ELAN Touchscreen as pointer"
    MatchProduct "ELAN Touchscreen"
    Driver "libinput"
    Option "SendCoreEvents" "true"
    Option "EmulatePointer" "true"
EndSection

What that is supposed to do is force it to treat single finger touch as pointer events, bypassing the problem.
Not the path /etc/X11/xorg.conf.d/99-touchscreen.conf
in case it does not work at all and you checked for typos and want to remove that configuration.

Ughh...doesn't work either. Yeah, this has been pretty frustrating to troubleshoot.
I'm out of time for tonight, but I'll see if I can find any other leads as to what may be causing this issue tomorrow.
But anyway, thanks a lot for your help.

1 Like