You are not logged in.

#1 2018-02-05 14:42:27

egeko
Member
Registered: 2018-02-05
Posts: 1

Thinkpad X1 Yoga Pen with Multiple Monitors

I have recently gotten a Lenovo Thinkpad X1 Yoga 2nd gen (20je-S4VE00) and installed Arch for the first time in my life and it works great. I have managed to solve all my problems through the wiki and this forum but I have a very specific problem about the included touchscreen pen that I couldn't find an answer for.

Once I plug to an external monitor the whole touchable area is taken as the sum of the two screens. So when I touch the screen, it is scaled for the sum of the both screens:
touching the left of the touchscreen brings the pointer to the left of the total screen area. It is the same problem for the touch pen.

Here is the xinput --list:

 Virtual core pointer                    	id=2	[master pointer  (3)]
    Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
    Wacom Pen and multitouch sensor Finger  	id=9	[slave  pointer  (2)]
    Logitech USB Optical Mouse              	id=13	[slave  pointer  (2)]
    HID 046a:0023                           	id=15	[slave  pointer  (2)]
    SynPS/2 Synaptics TouchPad              	id=17	[slave  pointer  (2)]
    TPPS/2 IBM TrackPoint                   	id=18	[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)]
     Video Bus                               	id=7	[slave  keyboard (3)]
     Sleep Button                            	id=8	[slave  keyboard (3)]
     Wacom Pen and multitouch sensor Pen     	id=10	[slave  keyboard (3)]
     Integrated Camera: Integrated C         	id=11	[slave  keyboard (3)]
     Lenovo ThinkPad Thunderbolt 3 Dock USB Audio	id=12	[slave  keyboard (3)]
     HID 046a:0023                           	id=14	[slave  keyboard (3)]
     AT Translated Set 2 keyboard            	id=16	[slave  keyboard (3)]
     ThinkPad Extra Buttons                  	id=19	[slave  keyboard (3)]
     HID 046a:0023                           	id=20	[slave  keyboard (3)]

I have solved it for the finger by mapping the finger input only to the touchscreen by using xinput.  I have set the finger sensor to the internal monitor (eDP-1) by

xinput --map-to-output 9 eDP-1

However the same with id 10 gives me a the following error:

xinput --map-to-output 10 eDP-1
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  57 ()
  Serial number of failed request:  28
  Current serial number in output stream:  29

According to Bug 58804 this is the normal behaviour and it is because of the fact that I cannot map a keyboard to a screen and since the pen is in the keyboard and seen as a slave of it, I am in this case.

I get the same error with exact same error numbers if I try to map the virtual core keyboard (id=3) to eDP-1.

Anyone has an idea to bypass this feature?

Offline

#2 2025-09-05 09:25:31

meriletfou
Member
Registered: 2025-09-05
Posts: 1

Re: Thinkpad X1 Yoga Pen with Multiple Monitors

I realise this is an old thread, but the problem is still present with the gen 8 X1 Yoga.
Since the touch devices are recognised as being from Wacom, I installed a bunch of libraries:

xf86-input-wacom
libwacom
wacomtablet

Note that some might be superfluous to the problem, I did not investigate further.

After that, `xinput list` gives separate devices for finger (id=12) and pen (id=28):

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ USB HID Gaming Keyboard Consumer Control  id=19   [slave  pointer  (2)]
⎜   ↳ SYNA8017:00 06CB:CEB2 Mouse               id=9    [slave  pointer  (2)]
⎜   ↳ USB HID Gaming Keyboard Mouse             id=22   [slave  pointer  (2)]
⎜   ↳ Telink Wireless Receiver Consumer Control id=25   [slave  pointer  (2)]
⎜   ↳ Telink Wireless Receiver Mouse            id=23   [slave  pointer  (2)]
⎜   ↳ SYNA8017:00 06CB:CEB2 Touchpad            id=10   [slave  pointer  (2)]
⎜   ↳ TPPS/2 Synaptics TrackPoint               id=16   [slave  pointer  (2)]
⎜   ↳ Wacom HID 5346 Finger                     id=12   [slave  pointer  (2)]
⎜   ↳ Wacom HID 5346 Pen Pen (0x8320a638)       id=28   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Video Bus                                 id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ USB HID Gaming Keyboard Consumer Control  id=20   [slave  keyboard (3)]
    ↳ USB HID Gaming Keyboard                   id=21   [slave  keyboard (3)]
    ↳ Intel HID events                          id=14   [slave  keyboard (3)]
    ↳ USB HID Gaming Keyboard                   id=18   [slave  keyboard (3)]
    ↳ sof-hda-dsp Headphone                     id=13   [slave  keyboard (3)]
    ↳ Telink Wireless Receiver Consumer Control id=26   [slave  keyboard (3)]
    ↳ Telink Wireless Receiver                  id=24   [slave  keyboard (3)]
    ↳ Telink Wireless Receiver System Control   id=27   [slave  keyboard (3)]
    ↳ Wacom HID 5346 Pen                        id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=15   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=17   [slave  keyboard (3)]

Mapping those does the trick:

xinput --map-to-output 12 eDP-1
xinput --map-to-output 28 eDP-1

Remains the problem of the stylus buttons (I guess  id=11) that can't be mapped with the same method.

Offline

Board footer

Powered by FluxBB