different wsmouse(4) wscons devices interpreted as a single ws(4) X device; how to map 1-to-1?

Lucas de Sena <[email protected]> Wed, 22 Jul 2026 10:25:48 -0300
Newsgroups gmane.os.openbsd.misc
Message-ID <amDBMEm4kHZoybt3@sabia>
Hi, I use a thinkpad with three pointer devices:
- wsmouse0: The thinkpad's touchpad.
- wsmouse1: The thinkpad's trackpoint.
- wsmouse2: An external USB mouse.

The relevant dmesg:
	OpenBSD 7.9-current (GENERIC.MP) #28: Thu Jul  9 21:12:16 MDT 2026
	    [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
	pckbc0 at isa0 port 0x60/5 irq 1 irq 12
	pckbd0 at pckbc0 (kbd slot)
	wskbd0 at pckbd0: console keyboard
	pms0 at pckbc0 (aux slot)
	wsmouse0 at pms0 mux 0
	wsmouse1 at pms0 mux 0
	pms0: Synaptics touchpad, firmware 7.2, 0x1c0b1 0xb40000 0x0 0xd047b1 0xa0000
	uhidev0 at uhub5 port 4 configuration 1 interface 0 "Microsoft Microsoft Basic Optical Mouse v2.0" rev 1.10/1.04 addr 4
	uhidev0: iclass 3/1
	ums0 at uhidev0: 3 buttons, Z dir
	wsmouse2 at ums0 mux 0

wsconsctl(8) correctly recognises each one:

	# wsconsctl mouse0
	mouse.type=synaptics
	mouse.rawmode=0
	mouse.scale=1472,5470,1408,4498,0,60,85
	mouse.reverse_scrolling=0
	mouse.tp.tapping=0,0,0
	mouse.tp.swapsides=0
	mouse.tp.disable=0
	mouse.tp.edges=0.0,5.0,0.0,5.0
	mouse.scaling=0.182

	# wsconsctl mouse1
	mouse1.type=ps2
	mouse1.reverse_scrolling=0
	mouse1.scaling=1.000

	# wsconsctl mouse2
	mouse2.type=usb
	mouse2.rawmode=1
	mouse2.scale=0,0,0,0,0,0,0
	mouse2.reverse_scrolling=0
	mouse2.scaling=1.000

The X server, however does not recognize all three, it only recognises
two: a generic /dev/wsmouse that affects both the trackpoint and the USB
mouse; and /dev/wsmouse0 for the synaptics touchpad only:

	$ xinput list
	⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
	⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
	⎜   ↳ /dev/wsmouse0                           	id=7	[slave  pointer  (2)]
	⎜   ↳ /dev/wsmouse                            	id=8	[slave  pointer  (2)]
	⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
	    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
	    ↳ /dev/wskbd                              	id=6	[slave  keyboard (3)]

I want to configure the X device for trackpoint individually so it does
not affect the USB mouse.  But that is not possible.

I have already tried to fiddle with xorg.conf(5).  I tried to specify
InputClass and InputDevice sections for each device, with different
combinations of options, but nothing works: it's always a single device
for X.

How can i make X recognize each device separatedly?

-- 
Lucas de Sena