Maus funktioniert nicht richtig bei Bildschirmdrehung
Maus funktioniert nicht richtig bei Bildschirmdrehung
Hallo zusammen!
Ich benutze den Bildschirm meines Notebooks gerne als Tablet und möchte zwischen Quer- und Hochformat umschalten können.
Problem: Die Maus schaltet nicht mit um, d.h. die Bewegungen des Mauszeigers werden nicht „mitgedreht“, auch Stift-Aktionen landen an der falschen Stelle. Eine BT-Maus verhält sich ebenfalls nicht richtig.
Das Notebook ist ein HP Elite X2, bei dem die Tastatur magnetisch „angeschnaggelt“ ist. Man kann's quasi auseinanderreißen und die Tastatur mit dem Touchpad beim Schreibtisch lassen, während man den Tablet-Teil mit auf den Balkon nimmt. Ich finde diese 2-in-1-Notebooks genial und frage mich, warum es das nicht längst wie Sand am Meer gibt.
Mir geht's aber gerade um das Problem mit der Maus. Weitere folgen vermutlich noch ...
Hilfe hierzu ist sehr willkommen!
Gruß
Gregor
PS: Desktop ist XFCE 4.18, GTK 3.24.38, Kernel 6.1.0, alles ständig aktualisiert.
Ich benutze den Bildschirm meines Notebooks gerne als Tablet und möchte zwischen Quer- und Hochformat umschalten können.
Problem: Die Maus schaltet nicht mit um, d.h. die Bewegungen des Mauszeigers werden nicht „mitgedreht“, auch Stift-Aktionen landen an der falschen Stelle. Eine BT-Maus verhält sich ebenfalls nicht richtig.
Das Notebook ist ein HP Elite X2, bei dem die Tastatur magnetisch „angeschnaggelt“ ist. Man kann's quasi auseinanderreißen und die Tastatur mit dem Touchpad beim Schreibtisch lassen, während man den Tablet-Teil mit auf den Balkon nimmt. Ich finde diese 2-in-1-Notebooks genial und frage mich, warum es das nicht längst wie Sand am Meer gibt.
Mir geht's aber gerade um das Problem mit der Maus. Weitere folgen vermutlich noch ...
Hilfe hierzu ist sehr willkommen!
Gruß
Gregor
PS: Desktop ist XFCE 4.18, GTK 3.24.38, Kernel 6.1.0, alles ständig aktualisiert.
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])
Re: Maus funktioniert nicht richtig bei Bildschirmdrehung
Von meinem Convertible mit Xfce, wo ich über Panel-Starter das Display (samt Maus) drehe:
Das für dich Entscheidende sind die Koordinatentransformationen der Input-Geräte.
Code: Alles auswählen
$ cat /usr/local/bin/orientationl
#!/bin/bash
export ORIENTATION=`xrandr | grep eDP1 | cut -c 38`
if [ $ORIENTATION = '(' ]; then
xrandr --output eDP1 --rotation left
xfconf-query -c xfce4-panel -p /panels/panel-1/mode -s 0
xfconf-query -c xfce4-panel -p /panels/panel-2/mode -s 0
xinput set-prop "ELAN Touchscreen" 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1
xinput set-prop "SynPS/2 Synaptics TouchPad" 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1
elif [ $ORIENTATION = 'l' ]; then
xrandr --output eDP1 --rotation inverted
xfconf-query -c xfce4-panel -p /panels/panel-1/mode -s 1
xfconf-query -c xfce4-panel -p /panels/panel-2/mode -s 1
xinput set-prop "ELAN Touchscreen" 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
xinput set-prop "SynPS/2 Synaptics TouchPad" 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
elif [ $ORIENTATION = 'i' ]; then
xrandr --output eDP1 --rotation right
xfconf-query -c xfce4-panel -p /panels/panel-1/mode -s 0
xfconf-query -c xfce4-panel -p /panels/panel-2/mode -s 0
xinput set-prop "ELAN Touchscreen" 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1
xinput set-prop "SynPS/2 Synaptics TouchPad" 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1
elif [ $ORIENTATION = 'r' ]; then
xrandr --output eDP1 --rotation normal
xfconf-query -c xfce4-panel -p /panels/panel-1/mode -s 1
xfconf-query -c xfce4-panel -p /panels/panel-2/mode -s 1
xinput set-prop "ELAN Touchscreen" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
xinput set-prop "SynPS/2 Synaptics TouchPad" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
fi
$ cat /usr/local/bin/orientationr
#!/bin/bash
export ORIENTATION=`xrandr | grep eDP1 | cut -c 38`
if [ $ORIENTATION = '(' ]; then
xrandr --output eDP1 --rotation right
xfconf-query -c xfce4-panel -p /panels/panel-1/mode -s 0
xfconf-query -c xfce4-panel -p /panels/panel-2/mode -s 0
xinput set-prop "ELAN Touchscreen" 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1
xinput set-prop "SynPS/2 Synaptics TouchPad" 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1
elif [ $ORIENTATION = 'r' ]; then
xrandr --output eDP1 --rotation inverted
xfconf-query -c xfce4-panel -p /panels/panel-1/mode -s 1
xfconf-query -c xfce4-panel -p /panels/panel-2/mode -s 1
xinput set-prop "ELAN Touchscreen" 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
xinput set-prop "SynPS/2 Synaptics TouchPad" 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
elif [ $ORIENTATION = 'i' ]; then
xrandr --output eDP1 --rotation left
xfconf-query -c xfce4-panel -p /panels/panel-1/mode -s 0
xfconf-query -c xfce4-panel -p /panels/panel-2/mode -s 0
xinput set-prop "ELAN Touchscreen" 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1
xinput set-prop "SynPS/2 Synaptics TouchPad" 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1
elif [ $ORIENTATION = 'l' ]; then
xrandr --output eDP1 --rotation normal
xfconf-query -c xfce4-panel -p /panels/panel-1/mode -s 1
xfconf-query -c xfce4-panel -p /panels/panel-2/mode -s 1
xinput set-prop "ELAN Touchscreen" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
xinput set-prop "SynPS/2 Synaptics TouchPad" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
fi
Re: Maus funktioniert nicht richtig bei Bildschirmdrehung
Danke für den Code. Welche Zeile(n) sind denn (in welcher Art) relevant? Welche Programme/Utilities/Manpages sollte ich kennen lernen bzw. lesen?hikaru hat geschrieben:02.04.2024 13:19:14Von meinem Convertible mit Xfce, wo ich über Panel-Starter das Display (samt Maus) drehe:Das für dich Entscheidende sind die Koordinatentransformationen der Input-Geräte.Code: Alles auswählen
$ cat /usr/local/bin/orientationl ...
Gruß
Gregor
PS: Die Ausgabe von xrandr scheint ja zumindest als Informationsquelle nützlich zu sein. Nur bekomme ich die Ausgabe von xrandr nicht mit dem zusammen, was ich sehe.
Ausgabe von xrandr:
Code: Alles auswählen
root@tablet:~# xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
VGA-1 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 531mm x 299mm
1920x1080 60.00*+ 50.00 59.94 59.99
1920x1080i 60.00 50.00 59.94
1600x1200 60.00
1680x1050 59.88
1280x1024 75.02 60.02
1440x900 59.90
1280x960 60.00
1366x768 59.79
1152x864 75.00
1280x720 60.00 50.00 59.94
1024x768 75.03 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
720x576 50.00
720x480 60.00 59.94
640x480 75.00 72.81 66.67 60.00 59.94
720x400 70.08
root@tablet:~#
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])
Re: Maus funktioniert nicht richtig bei Bildschirmdrehung
Das Relevante ist die Kombination der Display-Drehung* mit der Drehung der Input-Geräte. In meinem Beispiel also z.B. diese beiden Zeilen, um sowohl Display-Ausgabe, als auch Touchscreen-Eingabe um 90° nach rechts zu drehen:
Dein Display ist offenbar an "HDMI-1" angeschlossen, nicht wie bei mir an "eDP1", also sollte die erste Zeile bei dir funktionieren, wenn du einfach den Bezeichner austauschst:
Nun sollte dein Display gedreht sein, die Eingabe aber nicht. Das macht die zweite Zeile. Wie dein Eingabegerät heißt, musst du aber noch herausfinden. Das geht mit xinput --list
Bei mir sieht das so aus:
Für andere Drehungen als um 90° nach rechts musst du die Transformationsmatrix entsprechend anpassen. Eine Erklärung gibt es u.A. hier:
https://wiki.ubuntu.com/X/InputCoordinateTransformation
*) Zu meinem Erstaunen habe ich in meinen Scripts "--rotation" geschrieben statt "--rotate". Letzteres ist laut Manpage richtig. Ich staune gerade, dass auch Ersteres geht.
Code: Alles auswählen
xrandr --output eDP1 --rotate right
xinput set-prop "ELAN Touchscreen" 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1
Code: Alles auswählen
xrandr --output HDMI-1 --rotate right
Bei mir sieht das so aus:
Code: Alles auswählen
$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ELAN Touchscreen id=10 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Video Bus id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ ELAN Touchscreen Pen id=9 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
↳ Acer WMI hotkeys id=13 [slave keyboard (3)]
https://wiki.ubuntu.com/X/InputCoordinateTransformation
*) Zu meinem Erstaunen habe ich in meinen Scripts "--rotation" geschrieben statt "--rotate". Letzteres ist laut Manpage richtig. Ich staune gerade, dass auch Ersteres geht.
Re: Maus funktioniert nicht richtig bei Bildschirmdrehung
Prima, genau diese Info zur Transformationsmatrix hat mir gefehlt. Jetzt sollte ich es hinbekommen.hikaru hat geschrieben:02.04.2024 14:09:40...
Für andere Drehungen als um 90° nach rechts musst du die Transformationsmatrix entsprechend anpassen. Eine Erklärung gibt es u.A. hier:
https://wiki.ubuntu.com/X/InputCoordinateTransformation
Danke!
Gregor
PS: xrandr macht wohl einen Fehler bei der Erkennung oder Bezeichnung des Anschlusses. Mit HDMI-1 hat's jedenfalls nicht funktioniert. Mit einem Live-Ubuntu fand ich heraus, dass mein Anschluss genauso heißt wie Deiner. Und mit dem Ubuntu-Gnome(?) funktionierte auch die Drehung wie gewünscht. Zwar war das Touchpad da vollständig funktionslos, dafür funktionierte aber die Bedienung mit dem Stift. Hmpf ...
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])
Re: Maus funktioniert nicht richtig bei Bildschirmdrehung
Noch eine Frage: Ich wollte soeben noch einmal ein Live-Ubuntu (gestern heruntergeladen) ausprobieren, um zu sehen, wie ich dort mit meiner Lieblingssoftware zurecht komme. Dort hatte das mit der Drehung via Shell-Befehl ja funktioniert.
Ich habe nur nicht herausgefunden, wie ich das mit der Drehung hinbekomme, wenn ich nur klicken aber nicht tippen kann (als „nur-Tablet“).
Geht das dort (Gnome?) denn nur per Shell-Befehl?
Gruß
Gregor
Ich habe nur nicht herausgefunden, wie ich das mit der Drehung hinbekomme, wenn ich nur klicken aber nicht tippen kann (als „nur-Tablet“).
Geht das dort (Gnome?) denn nur per Shell-Befehl?
Gruß
Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])
Re: Maus funktioniert nicht richtig bei Bildschirmdrehung
Der Code aus meinem ersten Beitrag sind zwei Scripte, die ich über Starter im Xfce-Panel ausführe. Da brauche ich also nur draufklicken, und das Bild dreht sich nach links oder rechts.
Wie genau man sowas in Gnome umsetzt weiß ich nicht.
Wie genau man sowas in Gnome umsetzt weiß ich nicht.
Re: Maus funktioniert nicht richtig bei Bildschirmdrehung
Genau so werde ich das wohl auch machen, insbesondere weil eine weitere Idee gescheitert ist. Als ich testweise Gnome zusätzlich installieren wollte, endete das damit, dass die Installation von gnome-core mein xfce deinstallieren wollte. Es wehrt sich quasi dagegen, dass ich es mögen könnte.hikaru hat geschrieben:03.04.2024 20:27:04Der Code aus meinem ersten Beitrag sind zwei Scripte, die ich über Starter im Xfce-Panel ausführe. Da brauche ich also nur draufklicken, und das Bild dreht sich nach links oder rechts.
Gnome ist was für Masochisten
Gruß
Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])