Touchscreen-Eingang dreht sich nicht: Lenovo Yoga 13 / Yoga 2 Pro

8

Nachdem ich zu Weihnachten ein Lenovo Yoga 13 erhalten hatte, war ich mit seiner Leistung mit Ubuntu zufrieden. Es ist einfach, die Ausrichtung der Anzeige im Menü Anzeigeeinstellungen oder durch Eingabe, z xrandr -o inverted. B. im Terminal, zu ändern . Dadurch wird jedoch die Eingabe des Touchscreens (oder - weniger wichtig - des Touchpads) nicht gedreht.

Ich habe mich nach Lösungen für dieses Problem umgesehen und zwei vielversprechende Quellen gefunden.
(1) http://cc.oulu.fi/~rantalai/synaptics/ . Wenn Sie das Paket hier installieren und die empfohlenen Befehle ausführen, werden das Display und die Touchpad-Eingabe (jedoch nicht die des Touchscreens) gedreht.
(2) http://www.elfsternberg.com/2013/05/25/thinkpad-yoga-ubuntu-12/ . Diese Website hat empfohlen, ein Eingabepaket zu aktualisieren, das ich nicht ausprobiert habe.

user28549
quelle
Das Problem (und die Lösung) ist das gleiche auf dem Yoga 2 Pro
rubo77
Vielleicht können Sie mit diesem Skript auch die automatische Rotation hinzufügen: krizka.net/projects/autorotate
rubo77

Antworten:

8

Ich fand eine einfache Antwort auf meine Frage, indem ich die hilfreichen Informationen im Ubuntu-Wiki las : X - Input Coordinate Transformation .

Mit diesen Befehlen können Sie die Drehungen der Eingabegeräte und der Anzeige ausrichten:

  1. Der erste Befehl dreht die Anzeige, wobei links, rechts, normal oder invertiert sein kann:
    xrandr -o <orientation>

  2. Ordnen Sie das Eingabegerät neu zu:
    xinput set-prop '<device name>' 'Coordinate Transformation Matrix' <matrix-elements-rowwise>

Der zweite Befehl ordnet die Eingabevorrichtung (das heißt, das Touchpad oder die Touchscreen) , in dem <matrix-elements-rowwise>ist 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, oder -1 0 1 0 -1 1 0 0 1; entsprechend den obigen Ausrichtungen.

Die Namen des Touchpads und des Touchscreens können mit gefunden xinput listund entweder vollständig deaktiviert werden xinput disable <device-name>. Anschließend xinput enable <device-name>wird das Eingabegerät wieder aktiviert.

In meinem Fall und wahrscheinlich für andere mit einem Yoga 13 (auch auf Yoga 2 Pro) wird der Touchscreen ELAN Touchscreenund das Touchpad aufgerufen SynPS/2 Synaptics TouchPad.

Daher habe ich ein kurzes Skript in mein Home-Verzeichnis rotate-inverted.shmit dem folgenden Inhalt eingefügt:

    #! / bin / bash
    # Dieses Skript dreht den Bildschirm und die Touchscreen-Eingabe um 180 Grad, deaktiviert das Touchpad und aktiviert die virtuelle Tastatur
    xrandr -o invertiert
    xinput set-prop 'ELAN Touchscreen' 'Koordinatentransformationsmatrix' -1 0 1 0 -1 1 0 0 1
    xinput deaktiviert 'SynPS / 2 Synaptics TouchPad'
    am Bord &

Dann habe ich das Skript mit ausführbar gemacht

chmod u+x rotate-inverted.sh

und zugewiesen , um den Befehl ~/rotate-inverted.shan die Tastenkombination Ctrl+ Alt+ Iin den
Systemeinstellungen -> Tastatur .

Nachdem ich mich abgemeldet und wieder angemeldet hatte, konnte ich die Tastatur durch Drücken dieser Verknüpfung drehen.

Ich habe das Gleiche für die anderen Rotationspositionen gemacht, mit den Befehlen xinput enable 'SynPS/2 TouchPad'und killall onboardanstelle von xinput disable 'SynPS/2 TouchPad'und onboard &für rotate-normal.sh.

Einige andere in diesem Thread haben das Zuweisen solcher Skripte zu den zusätzlichen Schaltflächen im
Yoga - wie z. B. der Sperrtaste - sowie deren automatische Ausführung beim Ändern der Position des Yoga erörtert . aber ich war mir nicht sicher, wie ich das machen sollte.

user28549
quelle
Vielen Dank für Ihre ausführliche Arbeit. Ich habe mich gefragt, ob Sie auf eine Untersuchung gestoßen sind, die darüber sprach, wie diese Neuorientierung sofort erreicht werden kann (ich vermute, mit dem Beschleunigungsmesser).
A.Wan
Dies funktioniert auch perfekt auf meinem Yoga 2 Pro! Das erweiterte Skript unten von user267578 funktioniert perfekt! Ich werde es in meinem Handbuch
rubo77
Vielleicht finden Sie, wie Sie die richtigen Schlüssel verwenden , um Ihren Skript auf abzubilden hier ?
Rubo77
4

Ich habe ein paar weitere Zeilen hinzugefügt. Durch die zweite Ausführung des Skripts wird der Bildschirm wieder normal und das mit Ideapad 2 Pro getestete Touchpad wird aktiviert. Übrigens habe ich den Launcher für das Skript auf der Seite HowTo: new launcher platziert .

Der Beschleunigungsmesser wird im Kernel noch nicht unterstützt, aber vielleicht kommt in der nächsten Version etwas.

Erstellen Sie das Skript /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

und geben Sie ihm ausführbare Rechte:

sudo chmod +x /usr/local/bin/rotate-screen.sh
user267578
quelle
1
Großartige
rubo77
Vielen Dank! Funktioniert super. Ich habe einen Launcher erstellt, um die Verwendung noch einfacher zu machen.
Guillaume Sorel
1

Der Utility- Spin ist für die Verwendung mit ThinkPad Yogas konzipiert, verarbeitet also Stiftinformationen usw. und bietet alle Arten der Orientierungssteuerung (per Taste, Bildschirmdrehung und Beschleunigungsmesser). Es kann sich lohnen, es zu versuchen.

d3pd
quelle
0

Eine Lösung ohne xrandr(die auf Wayland nicht funktioniert)

Eine Lösung unter Ubuntu 19.04 mit wayland besteht darin, den rotate-monitorSchlüssel mit gsettingsoder auf eine Tastenkombination zu setzen dconf-editor.

Der folgende Befehl bewirkt beispielsweise, dass Ctrl+F8der Bildschirm gegen den Uhrzeigersinn gedreht wird:

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

Auf diese Weise kann der Benutzer die Zielausrichtung nicht festlegen, sondern nur den Bildschirm drehen, bis die gewünschte Ausrichtung erreicht ist.

(Original hier veröffentlicht: https://unix.stackexchange.com/a/465395/20661 )

rubo77
quelle