Ho trovato una risposta semplice alla mia domanda leggendo le informazioni utili su Ubuntu Wiki: X - Input Coordinate Transformation .
Questi comandi possono essere utilizzati per allineare le rotazioni dei dispositivi di input e del display:
Il primo comando ruota il display, dove può essere lasciato, a destra, normale o invertito:
xrandr -o <orientation>
rimappare il dispositivo di input:
xinput set-prop '<device name>' 'Coordinate Transformation Matrix' <matrix-elements-rowwise>
Il secondo comando riassocia il dispositivo di input (cioè, il touchpad o il touch screen) dove <matrix-elements-rowwise>
è 0 -1 1 1 0 0 0 0 1
, 0 1 0 -1 0 1 0 0 1
, 1 0 0 0 1 0 0 0 1
, o -1 0 1 0 -1 1 0 0 1
; corrispondente agli orientamenti sopra.
I nomi del touchpad e del touchscreen possono essere trovati con xinput list
ed entrambi possono essere disabilitati interamente con xinput disable <device-name>
. Successivamente, xinput enable <device-name>
riattiverà il dispositivo di input.
Nel mio caso, e probabilmente per gli altri con Yoga 13 (anche su Yoga 2 Pro), viene chiamato il touchscreen ELAN Touchscreen
e il touchpad
SynPS/2 Synaptics TouchPad
.
Pertanto, ho inserito un breve script nella mia home directory chiamato rotate-inverted.sh
con il seguente contenuto:
#! / Bin / bash
# Questo script ruota lo schermo e l'input del touchscreen di 180 gradi, disabilita il touchpad e abilita la tastiera virtuale
xrandr -o invertito
xinput set-prop 'ELAN Touchscreen' 'Matrice di trasformazione delle coordinate' -1 0 1 0 -1 1 0 0 1
xinput disabilita 'SynPS / 2 Synaptics TouchPad'
a bordo &
Poi ho reso lo script eseguibile con
chmod u+x rotate-inverted.sh
e assegnato il comando ~/rotate-inverted.sh
alla scorciatoia da tastiera Ctrl+ Alt+ Iin
Impostazioni di sistema -> Tastiera .
Dopo essermi disconnesso e riconnesso, sono stato in grado di ruotare la tastiera premendo quel tasto di scelta rapida.
Ho fatto lo stesso tipo di cose per le altre posizioni di rotazione, usando i comandi xinput enable 'SynPS/2 TouchPad'
e killall onboard
invece di xinput disable 'SynPS/2 TouchPad'
e onboard &
per rotate-normal.sh
.
Alcuni altri in questo thread hanno discusso dell'assegnazione di tali script ai pulsanti extra sullo
Yoga - come il pulsante di blocco - nonché di eseguirli automaticamente quando si cambia la posizione dello Yoga; ma non ero sicuro di come farlo.