Maus funktioniert nicht richtig bei Bildschirmdrehung

Hast Du Probleme mit Hardware, die durch die anderen Foren nicht abgedeckt werden? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
GregorS
Beiträge: 2637
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Maus funktioniert nicht richtig bei Bildschirmdrehung

Beitrag von GregorS » 02.04.2024 03:58:40

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.
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

Benutzeravatar
hikaru
Moderator
Beiträge: 13595
Registriert: 09.04.2008 12:48:59

Re: Maus funktioniert nicht richtig bei Bildschirmdrehung

Beitrag von hikaru » 02.04.2024 13:19:14

Von meinem Convertible mit Xfce, wo ich über Panel-Starter das Display (samt Maus) drehe:

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
Das für dich Entscheidende sind die Koordinatentransformationen der Input-Geräte.

Benutzeravatar
GregorS
Beiträge: 2637
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Maus funktioniert nicht richtig bei Bildschirmdrehung

Beitrag von GregorS » 02.04.2024 13:36:38

hikaru hat geschrieben: ↑ zum Beitrag ↑
02.04.2024 13:19:14
Von meinem Convertible mit Xfce, wo ich über Panel-Starter das Display (samt Maus) drehe:

Code: Alles auswählen

$ cat /usr/local/bin/orientationl 
...
Das für dich Entscheidende sind die Koordinatentransformationen der Input-Geräte.
Danke für den Code. Welche Zeile(n) sind denn (in welcher Art) relevant? Welche Programme/Utilities/Manpages sollte ich kennen lernen bzw. lesen?

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:~# 
Der Anzeige-Konfigurationsdialog von XFCE:
4767
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

Benutzeravatar
hikaru
Moderator
Beiträge: 13595
Registriert: 09.04.2008 12:48:59

Re: Maus funktioniert nicht richtig bei Bildschirmdrehung

Beitrag von hikaru » 02.04.2024 14:09:40

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:

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
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:

Code: Alles auswählen

xrandr --output HDMI-1 --rotate right
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:

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)]
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.

Benutzeravatar
GregorS
Beiträge: 2637
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Maus funktioniert nicht richtig bei Bildschirmdrehung

Beitrag von GregorS » 02.04.2024 15:00:25

hikaru hat geschrieben: ↑ zum Beitrag ↑
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
Prima, genau diese Info zur Transformationsmatrix hat mir gefehlt. Jetzt sollte ich es hinbekommen.

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])

Benutzeravatar
GregorS
Beiträge: 2637
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Maus funktioniert nicht richtig bei Bildschirmdrehung

Beitrag von GregorS » 03.04.2024 20:22:54

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
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

Benutzeravatar
hikaru
Moderator
Beiträge: 13595
Registriert: 09.04.2008 12:48:59

Re: Maus funktioniert nicht richtig bei Bildschirmdrehung

Beitrag von hikaru » 03.04.2024 20:27:04

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.

Benutzeravatar
GregorS
Beiträge: 2637
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Maus funktioniert nicht richtig bei Bildschirmdrehung

Beitrag von GregorS » 03.04.2024 20:47:04

hikaru hat geschrieben: ↑ zum Beitrag ↑
03.04.2024 20:27:04
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.
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.

Gnome ist was für Masochisten :D

Gruß

Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

Antworten