我在触摸屏设备上用xrandr -o left | right | inverse | normal旋转了X环境。触摸后一切正常。当在屏幕上移动手指时,它采用手指的绝对坐标,并且如果旋转是反向的,则将光标向相反方向移动。所以,如果我向上滑动,它会向下滑动。那么有没有办法配置触摸屏输入来读取相对坐标而不是绝对坐标。触摸屏驱动程序是evdev。
此致 列翁
答案 0 :(得分:1)
相对/绝对仍然不会做你想要的,只要方向不改变。没有通用的机制来告诉X服务器以不同的方向解释指针设备。您需要以某种方式让底层设备以不同方式报告。但是,有一种与底层设备通信的通用机制。
我的笔记本电脑内置了Wacom手写笔。要恢复正常方向,我可以执行以下操作:
xsetwacom设置“手写笔”旋转无
直接与底层驱动程序对话。我也可以做以下事情:
xinput set-int-prop stylus'Wacom Rotation''8'0
通过XInput“属性”与X驱动程序通信以执行相同的操作。
幸运的是,“evdev”允许这样的重新映射。
xinput list
,除了手写笔外,还显示我的笔记本电脑的跟踪点和外接鼠标都是通过evdev运行的:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ stylus id=6 [slave pointer (2)]
⎜ ↳ eraser id=7 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=14 [slave pointer (2)]
⎜ ↳ HID 0430:0100 id=11 [slave pointer (2)]
...
xinput list-props 'HID 0430:0100'
Device 'HID 0430:0100':
Device Enabled (135): 1
Device Accel Profile (251): 0
Device Accel Constant Deceleration (252): 1.000000
Device Accel Adaptive Deceleration (254): 1.000000
Device Accel Velocity Scaling (255): 10.000000
Evdev Reopen Attempts (299): 10
Evdev Axis Inversion (301): 0, 0
Evdev Axes Swap (303): 0
Axis Labels (304): "Rel X" (143), "Rel Y" (144)
Button Labels (305): "Button Left" (136), "Button Middle" (137), "Button Right" (138), "Button Wheel Up" (139), "Button Wheel Down" (140)
Evdev Middle Button Emulation (306): 2
Evdev Middle Button Timeout (307): 50
Evdev Wheel Emulation (308): 0
Evdev Wheel Emulation Axes (309): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (310): 10
Evdev Wheel Emulation Timeout (311): 200
Evdev Wheel Emulation Button (312): 4
Evdev Drag Lock Buttons (313): 0
xinput set-int-prop 'HID 0430:0100' 'Evdev Axis Inversion' 8 1 1
反转我的外接鼠标。
设置为正常:
xinput set-int-prop 'HID 0430:0100' 'Evdev Axis Inversion' 8 0 0
xinput set-int-prop 'HID 0430:0100' 'Evdev Axes Swap' 8 0
旋转90度:
xinput set-int-prop 'HID 0430:0100' 'Evdev Axis Inversion' 8 1 0
xinput set-int-prop 'HID 0430:0100' 'Evdev Axes Swap' 8 1
倒:
xinput set-int-prop 'HID 0430:0100' 'Evdev Axis Inversion' 8 1 1
xinput set-int-prop 'HID 0430:0100' 'Evdev Axes Swap' 8 0
以另一种方式旋转90度:
xinput set-int-prop 'HID 0430:0100' 'Evdev Axis Inversion' 8 0 1
xinput set-int-prop 'HID 0430:0100' 'Evdev Axes Swap' 8 1
当然,您需要一些方法来挑选出用于放置属性的设备。