External touch-screen is mapped to wrong display

I’m on a Laptop running Fedora 41 with Gnome and Wayland. I connected an external touch-screen (Wimaxit) but the touch screen input goes to the wrong display (the main monitor which doesn’t have touch input). On X11 I could use xinput to map the input to the right screen. Is there some option like this on Wayland too? If not maybe such an option would be nice to have in the settings like in KDE where you can map the touch input to a specific display.
I’ve tried the settings for Wacom Tablets and they didn’t work either. But since the monitor isn’t a Wacom Tablet I don’t know if it should work with them. The Map to Monitor setting changed the calibration screen to the right monitor (the external touch screen) but the input still went to the main monitor.

1 Like

this post here should hopefully get you sorted.

1 Like

Hi! I’ve had this problem for a while now and have never had any luck. I really wish GNOME would add this to the settings, dual screen laptops like the zenbook duo I’m using are getting a lot more common, and this is the only reason I’ve preferred to use KDE on this laptop, despite vastly prefering gnome.

Anyways, thanks for the response Peter; you seem to have got closer to managing it than I ever have. But I have no idea how to get the ‘specific path for [the] relocatable schema’. lsusb gives nothing, since both touchscreens are built-in and, presumably, not connected to usb. I think that’s the reason they don’t show up, at least. sudo libinput list-devices does give the devices (along with the pen digitizer input method for both), but gives nothing like the path you had. If it helps, here is the output from this;

Device:           ELAN9009:00 04F3:2F2A
Kernel:           /dev/input/event13
Group:            7
Seat:             seat0, default
Size:             321x96mm
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

(libinput record doesn’t work at all).

I am sorry for hijacking this post a bit, but I recently regained the urge to go back to gnome; could you help? Also, is there any way to request features like this one to the gnome team?

I followed the post, but during the process I found out that my external touchscreen is actually recognized as a tablet (checked it with dconf Editor) and so the schema and path is different (I think). The output seemed fine and I just replaced touchscreen in the path and schema with tablet (I don’t know if this is the right way to do it), which set the output value but didn’t map the input to the right screen. It was still mapped to the wrong one. The serial of the screen also seemed odd. Here’s my monitor.xml:

<monitors version="2">
  <configuration>
    <layoutmode>logical</layoutmode>
    <logicalmonitor>
      <x>1920</x>
      <y>0</y>
      <scale>1</scale>
      <monitor>
        <monitorspec>
          <connector>DP-1</connector>
          <vendor>RTK</vendor>
          <product>Wimaxit FHD</product>
          <serial>demoset-1</serial>
        </monitorspec>
        <mode>
          <width>1920</width>
          <height>1080</height>
          <rate>60.000</rate>
        </mode>
      </monitor>
    </logicalmonitor>
    <logicalmonitor>
      <x>0</x>
      <y>0</y>
      <scale>1</scale>
      <primary>yes</primary>
      <monitor>
        <monitorspec>
          <connector>eDP-1</connector>
          <vendor>LGD</vendor>
          <product>0x06e2</product>
          <serial>0x00000000</serial>
        </monitorspec>
        <mode>
          <width>1920</width>
          <height>1080</height>
          <rate>165.004</rate>
        </mode>
      </monitor>
    </logicalmonitor>
  </configuration>
</monitors>

And these were the commands I ran:

$ gsettings list-recursively org.gnome.desktop.peripherals.tablet:/org/gnome/desktop/peripherals/tablets/056a:0529/
org.gnome.desktop.peripherals.tablet area [0.0, 0.0, 0.0, 0.0]
org.gnome.desktop.peripherals.tablet keep-aspect false
org.gnome.desktop.peripherals.tablet left-handed false
org.gnome.desktop.peripherals.tablet mapping 'relative'
org.gnome.desktop.peripherals.tablet output ['', '', '']

$ gsettings set org.gnome.desktop.peripherals.tablet:/org/gnome/desktop/peripherals/tablets/056a:0529/ output "['RTK', 'Wimaxit FHD', 'demoset-1']"

$ gsettings list-recursively org.gnome.desktop.peripherals.tablet:/org/gnome/desktop/peripherals/tablets/056a:0529/
org.gnome.desktop.peripherals.tablet area [0.0, 0.0, 0.0, 0.0]
org.gnome.desktop.peripherals.tablet keep-aspect false
org.gnome.desktop.peripherals.tablet left-handed false
org.gnome.desktop.peripherals.tablet mapping 'relative'
org.gnome.desktop.peripherals.tablet output ['RTK', 'Wimaxit FHD', 'demoset-1']

As said above it didn’t change any behavior.

If the touchscreen works as tablet then adding it to libwacom should do the trick of making everything work automatically - well, at least for the tablet bit but iirc if the Touch=true is set in the .tablet file then the touchscreen should get mapped correctly too.

Either run it as root or if it’s missing install libinput-utils or some similarly named package.

In your case the device already includes the vid/pid in its name so the path will most probably be 04f3:2f2a.

pretty sure this has been a long-standing feature request in the control-center, e.g. here but there’s also an argument that fixing the monitors makes this work for everyone instead of having to expose a toggle… by and large adding this toggle mostly fails on the “someone needs to write the widgetry for this” stage though.

Mind you, the zenbook duo is a very special case because iirc we don’t get any information in userspace about which touchscreen is which so any heuristics are bound to fail.

I now added the .tablet file and libwacom recognizes it but it’s still mapped to the wrong display.
Here is my .tablet file:

# Wimaxit
# Wimaxit M1560CT3
# M1560CT3
# 
# sysinfo.oCG3SyQ55r.tar.gz
# https://github.com/linuxwacom/wacom-hid-descriptors/issues/442

[Device]
Name=Wacom TouchScreen Finger
# ModelName=M1560CT3
DeviceMatch=usb|056a|0529
IntegratedIn=Display

[Features]
Touch=true
Stylus=false

And here the output of libwacom-list-local-devices after I updated the db:

devices:
- name: 'Wacom TouchScreen Finger'
  bus: 'usb'
  vid: '0x056a'
  pid: '0x0529'
  nodes:
  - /dev/input/event23: 'Wacom TouchScreen Pen'
  - /dev/input/event24: 'Wacom TouchScreen Finger'
  styli:
   - id: 0xffffe
     name: 'General Pen Eraser'
     type: 'general'
     axes: ['x', 'y' , 'tilt', 'distance', 'pressure']
     buttons: 2
     is_eraser: 'true'
     eraser_type: 'invert'
   - id: 0xfffff
     name: 'General Pen'
     type: 'general'
     axes: ['x', 'y' , 'tilt', 'distance', 'pressure']
     buttons: 2
     erasers: [0xffffe]

That’s the output of libinput list-devices if it helps:

[...]
Device:           Wacom TouchScreen Pen
Kernel:           /dev/input/event23
Group:            5
Seat:             seat0, default
Size:             164x96mm
Capabilities:     tablet
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:   none
Rotation:         n/a

Device:           Wacom TouchScreen Finger
Kernel:           /dev/input/event24
Group:            5
Seat:             seat0, default
Size:             216x91mm
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
[...]

Any other ideas how I could get it to work?
The Map to Monitor setting in the tablet settings doesn’t work:
Screenshot From 2025-01-11 11-04-12

evemu-record only shows events on device 24 (Wacom TouchScreen Finger) if i use the touchscreen.