L'entrée de l'écran tactile ne tourne pas: Lenovo Yoga 13 / Yoga 2 Pro

8

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'affichage dans le menu Paramètres d'affichage ou en tapant, par exemple xrandr -o inverteddans le terminal. Cependant, cela ne fait pas pivoter l'entrée de l'écran tactile (ou - moins important - le 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 package ici et l'exécution des commandes recommandées ont fait pivoter l'entrée de l'écran et 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 a recommandé de mettre à jour un package d'entrée, que je n'ai pas essayé.

user28549
la source
Le problème (et la solution) est le même sur le Yoga 2 Pro
rubo77
Peut-être que vous pouvez aussi ajouter une rotation automatique avec ce script: krizka.net/projects/autorotate
rubo77

Réponses:

8

J'ai trouvé une réponse simple à ma question en lisant les informations utiles sur Ubuntu Wiki: X - Input Coordinate Transformation .

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

  1. La première commande fait pivoter l'affichage, où elle peut être gauche, droite, normale ou inversée:
    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 reconfigure le dispositif d'entrée (qui est, le pavé tactile ou l'écran tactile) où <matrix-elements-rowwise>est 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 1ou -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 listet l'un ou l'autre peut être entièrement désactivé avec xinput disable <device-name>. Par la suite, xinput enable <device-name>réactivera le périphérique d'entrée.

Dans mon cas, et probablement pour d'autres avec un Yoga 13 (également sur Yoga 2 Pro), l'écran tactile est appelé ELAN Touchscreenet le pavé tactile SynPS/2 Synaptics TouchPad.

Ainsi, j'ai mis un court script dans mon répertoire personnel appelé rotate-inverted.shavec le contenu suivant:

    #! / bin / bash
    # Ce script fait pivoter l'écran et l'écran tactile de 180 degrés, désactive le pavé tactile et active le clavier virtuel
    xrandr -o inversé
    xinput set-prop 'ELAN Touchscreen' 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
    xinput désactiver 'SynPS / 2 Synaptics TouchPad'
    à bord &

Ensuite, j'ai rendu le script exécutable avec

chmod u+x rotate-inverted.sh

et affecté la commande ~/rotate-inverted.shau raccourci clavier Ctrl+ Alt+ Idans
Paramètres 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 fait le même genre de chose pour les autres positions de rotation, en utilisant les commandes xinput enable 'SynPS/2 TouchPad'et killall onboardau lieu de xinput disable 'SynPS/2 TouchPad'et onboard &pour rotate-normal.sh.

Certains autres sur ce fil ont discuté de l'attribution de tels scripts aux boutons supplémentaires sur le
Yoga - tels que le bouton de verrouillage - ainsi que de les exécuter automatiquement lors du changement de la position du Yoga; mais je ne savais pas comment faire cela.

user28549
la source
Merci pour votre travail détaillé. Je me demandais si vous aviez rencontré des recherches sur la manière d'obtenir cette réorientation immédiatement (en utilisant l'accéléromètre, je suppose)?
A.Wan
Cela fonctionne également parfaitement sur mon Yoga 2 Pro! Le script amélioré ci-dessous par user267578 fonctionne parfaitement! Je vais l'ajouter sur mon guide pour installer Ubuntu sur Lenovo Yoga 2 Pro
rubo77
Peut-être découvrez-vous comment utiliser la bonne clé pour mapper votre script ici ?
rubo77
4

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 Ideapad 2 Pro. Au fait, j'ai mis le lanceur pour le script sur le panneau latéral HowTo: nouveau lanceur .

L'accéléromètre n'est pas encore pris en charge dans le noyau, mais peut-être que quelque chose arrive 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 exécutables:

sudo chmod +x /usr/local/bin/rotate-screen.sh
user267578
la source
1
excellent travail, j'ai amélioré votre script ici: gist.github.com/rubo77/daa262e0229f6e398766
rubo77
Merci! Fonctionne très bien. J'ai créé un lanceur pour le rendre encore plus facile à utiliser.
Guillaume Sorel
1

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

d3pd
la source
0

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

Une solution sur Ubuntu 19.04 avec wayland consiste à définir la rotate-monitorclé sur une liaison de clé à l'aide de gsettingsou dconf-editor.

Par exemple, la commande suivante entraînera la Ctrl+F8rotation de l'écran dans le sens antihoraire:

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

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

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

rubo77
la source