8 votes

La saisie sur l'écran tactile ne tourne pas : Lenovo Yoga 13 / Yoga 2 Pro

Après avoir reçu un Lenovo Yoga 13 pour Noël, j'ai été satisfait de ses performances avec Ubuntu. Il est facile de changer l'orientation de l'écran dans le menu des paramètres d'affichage ou en tapant, par ex. xrandr -o inverted dans le terminal. Cependant, cela ne fait pas pivoter l'entrée de l'écran tactile (ou, ce qui est moins important, du pavé tactile).

J'ai cherché des solutions à ce problème et j'ai trouvé deux sources prometteuses.
(1) http://cc.oulu.fi/~rantalai/synaptics/ . L'installation du paquet ici et l'exécution des commandes conseillées ont permis de faire pivoter l'affichage et l'entrée du pavé tactile (mais pas celle de l'écran tactile).
(2) http://www.elfsternberg.com/2013/05/25/thinkpad-yoga-ubuntu-12/ . Ce site web recommandait de mettre à jour un paquet d'entrée, ce que je n'ai pas essayé.

8voto

user28549 Points 191

J'ai trouvé une réponse directe à ma question en lisant les informations utiles sur le site suivant Ubuntu Wiki : X - Transformation des coordonnées d'entrée .

Ces commandes peuvent être utilisées pour aligner les rotations des périphériques d'entrée et de l'écran :

  1. La première commande fait pivoter l'affichage, qui peut être à gauche, à droite, normal ou inversé :
    xrandr -o <orientation>

  2. remapper le périphérique d'entrée :
    xinput set-prop '<device name>' 'Coordinate Transformation Matrix' <matrix-elements-rowwise>

La deuxième commande permet de réaffecter le périphérique d'entrée (c'est-à-dire le pavé tactile ou l'écran tactile) à l'endroit suivant <matrix-elements-rowwise> es 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 correspondant aux orientations ci-dessus.

Les noms du pavé tactile et de l'écran tactile peuvent être trouvés avec xinput list et l'un ou l'autre peut être entièrement désactivé à l'aide de la fonction xinput disable <device-name> . Par la suite, xinput enable <device-name> réactive le périphérique d'entrée.

Dans mon cas, et probablement pour d'autres personnes possédant un Yoga 13 (également sur le Yoga 2 Pro), l'écran tactile s'appelle ELAN Touchscreen et le pavé tactile SynPS/2 Synaptics TouchPad .

J'ai donc placé dans mon répertoire personnel un court script appelé rotate-inverted.sh avec le contenu suivant :

    #!/bin/bash
    # This script rotates the screen and touchscreen input 180 degrees, disables the touchpad, and enables the virtual keyboard
    xrandr -o inverted
    xinput set-prop 'ELAN Touchscreen' 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
    xinput disable 'SynPS/2 Synaptics TouchPad'
    onboard &

J'ai ensuite rendu le script exécutable avec

chmod u+x rotate-inverted.sh

et lui a confié le commandement ~/rotate-inverted.sh au raccourci clavier Ctrl + Alt + I en
Paramètres du système -> Clavier .

Après m'être déconnecté et reconnecté, j'ai pu faire pivoter le clavier en appuyant sur ce raccourci.

J'ai procédé de la même manière pour les autres positions de rotation, en utilisant les commandes xinput enable 'SynPS/2 TouchPad' y killall onboard 代わりに xinput disable 'SynPS/2 TouchPad' y onboard & pour rotate-normal.sh .

D'autres personnes sur ce fil de discussion ont discuté de l'assignation de tels scripts aux boutons supplémentaires sur le
Yoga - comme le bouton de verrouillage - et de les exécuter automatiquement en cas de changement de position du Yoga ; mais je n'étais pas sûr de savoir comment faire.

4voto

umbyersw Points 434

J'ai ajouté quelques lignes supplémentaires, la deuxième exécution du script ramènera l'écran à la normale et activera le pavé tactile, testé avec l'Ideapad 2 Pro. D'ailleurs j'ai mis un lanceur pour le script sur le panneau latéral. Mode d'emploi : nouveau lanceur .

L'accéléromètre n'est pas encore supporté par le noyau, mais quelque chose est peut-être à venir dans la prochaine version.

créer le script. /usr/local/bin/rotate-screen.sh

#!/bin/bash
# This script rotates the screen and touchscreen input 180 degrees, disables the touchpad, and enables the virtual keyboard
# And rotates screen back if the touchpad was disabled

isEnabled=$(xinput --list-props 'SynPS/2 Synaptics TouchPad' | awk '/Device Enabled/{print $NF}')

if [ $isEnabled == 1 ] 
then
    echo "Screen is turned upside down"
    xrandr -o inverted
    xinput set-prop 'ELAN Touchscreen' 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
    xinput disable 'SynPS/2 Synaptics TouchPad'
    # Remove hashtag below if you want pop-up the virtual keyboard  
    # onboard &
else
    echo "Screen is turned back to normal"
    xrandr -o normal
    xinput set-prop 'ELAN Touchscreen' 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
    xinput enable 'SynPS/2 Synaptics TouchPad'
    # killall onboard 
fi

et lui donner des droits d'exécution :

sudo chmod +x /usr/local/bin/rotate-screen.sh

1voto

d3pd Points 3491

L'utilité rotation est conçu pour fonctionner avec les ThinkPad Yogas, il gère donc les informations relatives au stylet, etc., et offre toutes sortes de contrôles d'orientation (par bouton, rotation de l'écran et accéléromètre). Cela peut valoir la peine d'essayer.

0voto

jrishaw Points 71

Une solution sans xrandr (qui ne fonctionne pas sur wayland)

Une solution sur Ubuntu 19.04 avec wayland est de définir le paramètre rotate-monitor à certains raccourcis clavier à l'aide de la touche gsettings o dconf-editor .

Par exemple, la commande suivante entraînera Ctrl+F8 pour faire tourner l'écran dans le sens inverse des aiguilles d'une montre :

$ gsettings set org.gnome.mutter.keybindings rotate-monitor "['XF86RotateWindows', '<Control>F8']"

Cela ne permet pas à l'utilisateur de spécifier l'orientation cible, mais seulement de faire tourner l'écran jusqu'à ce que l'orientation souhaitée soit atteinte.

(l'original a été publié ici : https://unix.stackexchange.com/a/465395/20661 )

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X