remapping XInput axes

Tamas Papp tkpapp at gmail.com
Fri Oct 21 05:45:06 PDT 2011


Hi,

I just purchased an Intellipen Pro digital pen.  It shows up fine in
xinput list:

$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® Nano Transceiver v2.0	id=12	[slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® Nano Transceiver v2.0	id=13	[slave  pointer  (2)]
⎜   ↳ DualPoint Stick                         	id=16	[slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS DualPoint TouchPad        	id=17	[slave  pointer  (2)]
⎜   ↳ Dell BT Keyboard                        	id=20	[slave  pointer  (2)]
⎜   ↳ EPOS EPOS Pen Digitizer.                	id=21	[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)]
    ↳ HID 413c:8157                           	id=9	[slave  keyboard (3)]
    ↳ Integrated_Webcam_2M                    	id=10	[slave  keyboard (3)]
    ↳ Microsoft Microsoft® Nano Transceiver v2.0	id=11	[slave  keyboard (3)]
    ↳ HID 046a:0011                           	id=14	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=15	[slave  keyboard (3)]
    ↳ Dell WMI hotkeys                        	id=18	[slave  keyboard (3)]
    ↳ ACPI Virtual Keyboard Device            	id=19	[slave  keyboard (3)]

and button events are detected, but the cursor doesn't move. xinput
test reveals that the X and Y axes are a[2] and a[3]:

$ xinput test 21 # (excerpt)
motion a[0]=1130 a[1]=525 a[2]=946 a[3]=0 a[4]=0 a[5]=0 
motion a[6]=0 a[7]=0 a[8]=0 a[9]=0 a[10]=0 a[11]=0 
motion a[12]=0 
button press   1 
motion a[0]=1130 a[1]=525 a[2]=1002 a[3]=92 a[4]=0 a[5]=0 
motion a[6]=0 a[7]=0 a[8]=0 a[9]=0 a[10]=0 a[11]=0 
motion a[12]=0 
motion a[0]=1130 a[1]=525 a[2]=1012 a[3]=92 a[4]=0 a[5]=0 
motion a[6]=0 a[7]=0 a[8]=0 a[9]=0 a[10]=0 a[11]=0 
motion a[12]=0 
motion a[0]=1130 a[1]=525 a[2]=1021 a[3]=92 a[4]=0 a[5]=0 
motion a[6]=0 a[7]=0 a[8]=0 a[9]=0 a[10]=0 a[11]=0 
motion a[12]=0 
motion a[0]=1130 a[1]=525 a[2]=1031 a[3]=90 a[4]=0 a[5]=0 
motion a[6]=0 a[7]=0 a[8]=0 a[9]=0 a[10]=0 a[11]=0 
motion a[12]=0 
motion a[0]=1130 a[1]=525 a[2]=1042 a[3]=90 a[4]=0 a[5]=0 
motion a[6]=0 a[7]=0 a[8]=0 a[9]=0 a[10]=0 a[11]=0 
motion a[12]=0 
motion a[0]=1130 a[1]=525 a[2]=1052 a[3]=89 a[4]=0 a[5]=0 
motion a[6]=0 a[7]=0 a[8]=0 a[9]=0 a[10]=0 a[11]=0 
motion a[12]=0 
motion a[0]=1130 a[1]=525 a[2]=1062 a[3]=86 a[4]=0 a[5]=0 
motion a[6]=0 a[7]=0 a[8]=0 a[9]=0 a[10]=0 a[11]=0 
motion a[12]=0 
motion a[0]=1130 a[1]=525 a[2]=1072 a[3]=85 a[4]=0 a[5]=0 
motion a[6]=0 a[7]=0 a[8]=0 a[9]=0 a[10]=0 a[11]=0 
motion a[12]=0 

Is there a way I could remap these to the appropriate axes so that the
cursor would move on the screen?  Sorry if this is a dumb question, I
know very little about Xinput internals.  xorg.conf or command line
snippets or documentation on how to do this would be appreciated.  I
tried xinput set-prop but couldn't figure it out.

I attach the output of xinput list-props and xinput list --long for
this device.

Best,

Tamas
-------------- next part --------------
Device 'EPOS EPOS Pen Digitizer.':
	Device Enabled (132):	1
	Coordinate Transformation Matrix (134):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	Device Accel Profile (257):	0
	Device Accel Constant Deceleration (258):	1.000000
	Device Accel Adaptive Deceleration (259):	1.000000
	Device Accel Velocity Scaling (260):	10.000000
	Evdev Axis Inversion (261):	0, 0
	Evdev Axis Calibration (262):	<no items>
	Evdev Axes Swap (263):	0
	Axis Labels (264):	"Abs X" (254), "Abs Y" (255), "Abs Z" (275), "Abs Rotary X" (276), "Abs Pressure" (485), "Abs Misc" (285), "Abs Misc" (285), "Abs Misc" (285), "Abs Misc" (285), "Abs Misc" (285), "Abs Misc" (285), "Abs Misc" (285), "Abs Misc" (285)
	Button Labels (266):	"Button Left" (135), "Button Middle" (136), "Button Right" (137), "Button Wheel Up" (138), "Button Wheel Down" (139), "Button Horiz Wheel Left" (140), "Button Horiz Wheel Right" (141), "Button 3" (725), "Button 4" (726)
	Evdev Middle Button Emulation (267):	0
	Evdev Middle Button Timeout (268):	50
	Evdev Wheel Emulation (269):	0
	Evdev Wheel Emulation Axes (270):	0, 0, 4, 5
	Evdev Wheel Emulation Inertia (271):	10
	Evdev Wheel Emulation Timeout (272):	200
	Evdev Wheel Emulation Button (273):	4
	Evdev Drag Lock Buttons (274):	0
-------------- next part --------------
⎜   ↳ EPOS EPOS Pen Digitizer.                	id=21	[slave  pointer  (2)]
	Reporting 14 classes:
		Class originated from: 21
		Buttons supported: 9
		Button labels: Button Left Button Middle Button Right Button Wheel Up Button Wheel Down Button Horiz Wheel Left Button Horiz Wheel Right Button 3 Button 4
		Button state:
		Class originated from: 21
		Detail for Valuator 0:
		  Label: Abs X
		  Range: 0.000000 - 1920.000000
		  Resolution: 10000 units/m
		  Mode: absolute
		  Current value: 1130.000000
		Class originated from: 21
		Detail for Valuator 1:
		  Label: Abs Y
		  Range: 0.000000 - 1920.000000
		  Resolution: 10000 units/m
		  Mode: absolute
		  Current value: 525.000000
		Class originated from: 21
		Detail for Valuator 2:
		  Label: Abs Z
		  Range: 0.000000 - 1920.000000
		  Resolution: 10000 units/m
		  Mode: absolute
		  Current value: 630.000000
		Class originated from: 21
		Detail for Valuator 3:
		  Label: Abs Rotary X
		  Range: 0.000000 - 1920.000000
		  Resolution: 10000 units/m
		  Mode: absolute
		  Current value: 338.000000
		Class originated from: 21
		Detail for Valuator 4:
		  Label: Abs Pressure
		  Range: 0.000000 - 1024.000000
		  Resolution: 10000 units/m
		  Mode: absolute
		  Current value: 0.000000
		Class originated from: 21
		Detail for Valuator 5:
		  Label: Abs Misc
		  Range: 0.000000 - 255.000000
		  Resolution: 10000 units/m
		  Mode: absolute
		  Current value: 0.000000
		Class originated from: 21
		Detail for Valuator 6:
		  Label: Abs Misc
		  Range: 0.000000 - 255.000000
		  Resolution: 10000 units/m
		  Mode: absolute
		  Current value: 0.000000
		Class originated from: 21
		Detail for Valuator 7:
		  Label: Abs Misc
		  Range: 0.000000 - 255.000000
		  Resolution: 10000 units/m
		  Mode: absolute
		  Current value: 0.000000
		Class originated from: 21
		Detail for Valuator 8:
		  Label: Abs Misc
		  Range: 0.000000 - 255.000000
		  Resolution: 10000 units/m
		  Mode: absolute
		  Current value: 0.000000
		Class originated from: 21
		Detail for Valuator 9:
		  Label: Abs Misc
		  Range: 0.000000 - 255.000000
		  Resolution: 10000 units/m
		  Mode: absolute
		  Current value: 0.000000
		Class originated from: 21
		Detail for Valuator 10:
		  Label: Abs Misc
		  Range: 0.000000 - 255.000000
		  Resolution: 10000 units/m
		  Mode: absolute
		  Current value: 0.000000
		Class originated from: 21
		Detail for Valuator 11:
		  Label: Abs Misc
		  Range: 0.000000 - 255.000000
		  Resolution: 10000 units/m
		  Mode: absolute
		  Current value: 0.000000
		Class originated from: 21
		Detail for Valuator 12:
		  Label: Abs Misc
		  Range: 0.000000 - 255.000000
		  Resolution: 10000 units/m
		  Mode: absolute
		  Current value: 0.000000


More information about the xorg mailing list