Relative/Absolute еще не будет делать то, что вы хотите, так долго, как ориентация не меняется тоже. Не существует универсального механизма, позволяющего серверу X интерпретировать устройства указателей в разных ориентациях. Вам нужно каким-то образом заставить базовое устройство сообщать об этом по-другому. Однако существует общий механизм для связи с базовым устройством.
У меня есть стилус Wacom, встроенный в мой ноутбук. Для восстановления нормальной ориентации, я могу сделать следующее:
xsetwacom набор «стилус» Поворачивать NONE
, который непосредственно общается с подстилающей водителем. Я также могу сделать следующее:
XInput установленный ИНТ-проп стилуса Wacom «Поворот» «8» 0
, который взаимодействует с драйвером X через XInput «свойства», чтобы сделать то же самое.
«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
Inverted:
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
Вам понадобится какой-то способ выбрать, какое устройство включить, конечно.
Я сделал так же! благодаря !! – deimus