Domanda

Non ho ambiente ruotata X con xrandr -o left | right | inversa | normale sul dispositivo touch screen. Tutto funziona bene accanto a tocco. Quando si sposta il dito sullo schermo, ci vogliono coordinate assolute del dito e si muove cursore nella direzione opposta se la rotazione è inverso. Quindi, se ho scivolare fino in realtà scivola verso il basso. Quindi non v'è un modo per configurare ingresso Touch screen per leggere le coordinate relative, non assolute. driver di schermo touch è evdev.

Saluti, Levon

È stato utile?

Soluzione

relativo / assoluto continua a non fare quello che vuoi, a patto che l'orientamento non è cambiato troppo. Non v'è alcun meccanismo generico per dire al server X per interpretare dispositivi puntatore in diversi orientamenti. Avrete bisogno di ottenere in qualche modo il dispositivo di fondo a riferire in modo diverso. C'è un meccanismo generico per comunicare con il dispositivo sottostante, tuttavia.

Ho un Wacom stilo integrato nel mio computer portatile. Per ripristinare orientamento normale, posso effettuare le seguenti operazioni:

xsetwacom set "stylus" Ruota NONE

che parla direttamente al conducente sottostante. Posso anche fare quanto segue:

xinput set-int-prop stilo 'Wacom Rotation' '8' 0

che comunica con il driver X tramite XInput "Proprietà" per fare la stessa cosa.

Il "evdev" è fortunatamente uno che fa permettere tale rimappatura.

xinput list, oltre al pennino mostra trackpoint del mio computer portatile e un mouse esterno, che sono entrambi girano via 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 inverte il mio mouse esterno.

Per impostare alla normalità:

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

ruotato di 90 gradi:

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

invertito:

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

ruotato di 90 gradi nella direzione opposta:

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

Si avrà bisogno di un certo modo di individuare quali dispositivo per mettere le proprietà su, ovviamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top