Wie emuliere ich einen Rechtsklick auf den Touchscreen?

9

Mein neuer Touchscreen-Laptop verfügt nicht über die Menütaste (dh die eine verhält sich wie ein rechter Mausklick) - die normalerweise neben der rechten Strg-Taste.

Da Sie nicht per Berührung mit der linken Maustaste klicken können, versuche ich, für diese Funktion eine benutzerdefinierte Tastenkombination für Alt GR zu erstellen (unter System> Tastatur> Tastenkombinationen> Benutzerdefinierte Tastenkombinationen).

Bei Verwendung des xevBefehls mit einer integrierten Tastatur (die über die Menütaste verfügt) habe ich festgestellt, dass die Tasteninformationen wie folgt lauten:

KeyRelease event, serial 42, synthetic NO, window 0x4800001,
    root 0xab, subw 0x0, time 2544690, (1236,607), root:(1302,1050),
    state 0x0, keycode 135 (keysym 0xff67, Menu), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Ich habe jedoch keine Ahnung, was ich mit diesen Informationen anfangen soll ...

Übrigens benutze ich ein Ubuntu 13.04.

Jede Hilfe wäre sehr dankbar ...

Ismail Moghul
quelle
Ich habe genau das gleiche Problem mit meinem Aspire P3, Ubuntu 14.04, Rechtsklick-Funktionen funktionieren nicht mit Touchscreen :(
user65390
@ User65390 haben Sie versucht, Freddi Schiller Antwort ...
Ismail Moghul
1
Sie sollten diese Frage bearbeiten, um die Geekyness zu entfernen. Sagen Sie einfach, wie man mit der rechten Maustaste auf Touchscreens klickt. Die Frage, die jetzt beantwortet wird, scheint zu technisch, um tatsächlich mit den Antworten
Bhikkhu Subhuti

Antworten:

12

Sie müssen den sekundären Klick (wie von AliNa ​​kommentiert) mit gsettings set org.gnome.desktop.a11y.mouse secondary-click-enabled "true"oder mit dem dconf-Editor aktivieren.

Dann ist es möglich, dass Ubuntu den Touchscreen teilweise wie ein Touchpad behandelt, bei dem eine Berührung keinen Mausdruck auslöst. Stattdessen müssen Sie kurz tippen + berühren und halten.

Freddi Schiller
quelle
Leider ist diese Technik auf Gnome3-basierte Desktop-Umgebungen wie Ubuntu beschränkt. Langes Drücken für Rechtsklick funktioniert auch in Chrome / Chromium, jedoch nur, weil Touch-Ereignisse selbst behandelt werden.
Tanius
6

Berühren Sie einfach 2 oder 3 Sekunden lang den Bildschirm und das sogenannte "richtige Menü" sollte erscheinen. Dies ist die normale Methode, um einen Rechtsklick auf einen Touchscreen zu emulieren.

Radu Rădeanu
quelle
1
Sie sollten wahrscheinlich zuerst den sekundären Klick aktivieren, einfach über gsettings set org.gnome.desktop.a11y.mouse secondary-click-enabled "true"oder über den Dconf-Editor.
AliN
Ich gab den obigen Befehl in das Terminal ein und ging dann sogar zu den universellen Einstellungen und reduzierte die Akzeptanzverzögerung auf min. Dies löst das Problem jedoch immer noch nicht - wenn ich eine Maus benutze, erscheint das Menü, aber wenn ich den Touchscreen benutze, funktioniert es nicht ...
Ismail Moghul
1
@IsmailM Dann denke ich, dass Sie mit Ihrem Verkäufer / Hersteller darüber sprechen sollten ...
Radu Rădeanu
@ RaduRădeanu Ich habe diesen Laptop von John Lewis mit Windows 8 mitgebracht (und die Touchscreen-Funktion funktioniert unter Windows 8 ordnungsgemäß). Denken Sie immer noch, ich sollte mit ihnen chatten, weil ich Ubuntu selbst installiert habe ...
Ismail Moghul
@IsmailM Ja, das solltest du.
Radu Rădeanu
1

Wenn Sie über einen Wacom-Touchscreen (mit Treiber xf86-input-wacom) verfügen und mindestens zwei Finger mit mehreren Fingern berühren können, führt Folgendes zu einem Rechtsklick:

  1. Tippen und halten Sie mit dem ersten Finger.
  2. Tippen Sie nun mit dem zweiten Finger auf.

Wenn es noch nicht funktioniert, ermitteln Sie den Produktnamen Ihres Touchscreens auf xinput --listund aktivieren Sie diese Funktion mit:

xsetwacom --set "[your touchscreen product id]" Gesture on

Um diese Änderung dauerhaft zu machen, siehe meine andere Antwort für die Technik.

Im Gegensatz zu den langen Rechtsklicks unter Gnome / Ubuntu Shell funktioniert dies in allen Desktop-Umgebungen, da es sich um eine (ältere) Funktion auf Treiberebene handelt. Beachten Sie jedoch, dass es in einigen Programmen zu Problemen beim Klicken mit der linken Maustaste per Touchscreen kommen kann. Deshalb musste ich es auf meinem System deaktivieren.

Tanius
quelle
0

Für diejenigen, die die Menütaste auf ihrer Tastatur haben, ist der Hinweis in der Frage, wie man damit einen Rechtsklick erstellt, eine großartige Idee. Da es nicht offensichtlich ist, funktioniert es folgendermaßen:

  1. Tippen und halten Sie den Bildschirm mit einem Finger. Lassen Sie den Finger nicht los, da dies einen Linksklick auslösen würde, der unerwünschte Auswirkungen auf Ihre Anwendung haben könnte. Tippen und Halten ist jedoch so, als würde man die linke Maustaste drücken und nicht loslassen, und normalerweise ergibt sich daraus keine Aktion in einer Anwendung. Die Position des Mauszeigers wurde jedoch bereits auf die Stelle geändert, an der wir mit der rechten Maustaste klicken möchten. Deshalb führen wir diesen Schritt aus.

  2. Drücken Sie kurz die Menütaste. Bereits beim Tastendruck wird ein Rechtsklick ausgelöst.

Offensichtlich benötigt diese Technik zwei Hände und ist bei konvertierbaren Notebooks im Tablet-Modus völlig unmöglich. Es ist also von begrenztem praktischem Nutzen.

Tanius
quelle
0

Von meinen Antworten auf diese Frage ist dies mein persönlicher Favorit.

Wenn Sie über einen Touchscreen verfügen, der mindestens die Multitouch-Eingabe mit zwei Fingern unterstützt, können Sie ihn installieren toucheggund konfigurieren, um (z. B.) das Tippen mit zwei Fingern als Rechtsklick zu interpretieren. Ich habe dies unter Lubuntu 18.10 versucht und es funktioniert.

1. Installation

touchegg ist in den Ubuntu 18.10-Repositorys verfügbar, sodass Sie es einfach folgendermaßen installieren können:

sudo apt install touchegg

Führen Sie es aus, um es zu starten touchegg. Wenn Sie es in einem Terminal ausführen, können Sie anhand seiner Ausgabe überprüfen, ob es Ihre Multitouch-Gesten korrekt erkennt.

Um toucheggfür jede LXQt-Sitzung automatisch zu starten, fügen Sie sie einfach zum Autostart hinzu (LXQt-Menü → Einstellungen → LXQt-Einstellungen → Sitzungseinstellungen → Autostart).

2. Möglichkeiten zur Konfiguration touchegg

Sie können toucheggauf zwei alternative Arten konfigurieren :

  • Konfiguration mit einer Konfigurationsdatei. Bearbeiten Sie die Datei ~/.config/touchegg/touchegg.conf. Führen Sie die folgenden Schritte in einem Terminal oder über den Dialog Alt+ F2Ausführen aus, um die Änderungen wirksam zu machen :

    killall touchegg; touchegg
    
  • Konfiguration mit einer GUI. touchegghat eine schöne Konfigurations-GUI namens touchegg-gui, die hier zu sehen ist . Es ist jedoch nicht Teil des toucheggUbuntu-Pakets. Alternativ können Sie die GUI touchegg-gce wie hier beschrieben installieren . touchegg-gcefunktioniert, aber Sie müssen toucheggnach dem Speichern der Änderungen an der Konfigurationsdatei erneut manuell neu starten , indem Sie Folgendes ausführen:

    killall touchegg; touchegg
    

3. Konfiguration zum Emulieren eines Rechtsklicks

Um einen Rechtsklick mit zwei Fingern zu konfigurieren, können Sie diese Konfigurationsdatei verwenden für ~/.config/touchegg/touchegg.conf:

<touchégg>
        <settings>
                <property name="composed_gestures_time">0</property>
        </settings>

        <application name="All">
                <gesture type="TAP" fingers="2" direction="">
                        <action type="MOUSE_CLICK">BUTTON=3</action>
                </gesture>
        </application>
</touchégg>

Kommentare zur toucheggKonfiguration:

  • Das Klicken mit zwei Fingern mit der rechten Maustaste wie oben gezeigt ist derzeit bereits in der mitgelieferten Standardkonfigurationsdatei enthalten touchegg. (Ubuntu 18.10 hier.)

  • Das Programm wartet composed_gestures_time(in Millisekunden angegeben), bis Sie Ihre Aktionen für Gesten abgeschlossen haben, die aus mehreren Teilen bestehen (z. B. Tippen), und interpretiert sie erst dann. Wenn Sie also toucheggnur einteilige Gesten wie das Klicken mit der rechten Maustaste mit zwei Fingern verwenden, können Sie dies so einstellen 0, dass keine merklichen Verzögerungen bei den Aktionen auftreten. Dies ist auch die Standardeinstellung in der Konfigurationsdatei, die von erstellt wurde touchegg.

  • Zumindest bei meinem Touchscreen wird das Tippen mit zwei Fingern nicht erkannt, wenn der Bildschirm genau mit beiden Fingern gleichzeitig berührt wird. Aber wenn es auch nur eine sehr kleine Zeitlücke gibt (so dass zwei Taps zu hören sind, wahrscheinlich ≥ 10 ms), funktioniert es zuverlässig. Also bewege ich einfach meinen Zeigefinger und Mittelfinger mit einem kleinen vertikalen Spalt zum Bildschirm und es funktioniert zuverlässig.

  • Der Rechtsklick wird an der Stelle des Fingers (von den beiden in dieser Geste) ausgelöst, der zuerst den Bildschirm berührt.

  • toucheggErmöglicht die Interpretation aller Ereignisse, die nicht für die Blase bis zur Anwendung unter dem Cursor konfiguriert wurden. Dies ist gut, da der in Chromium, Chrome, Evince implementierte native Pinch-Zoom usw. viel reibungsloser funktioniert als via touchegg.

  • toucheggkann neben der (sehr empfehlenswerten!) Single-Touch-Gestenerkennungssoftware easystrokestörungsfrei verwendet werden. Natürlich sollten sie nicht so konfiguriert sein, dass sie von denselben Ereignissen ausgelöst werden.

4. Fehlerbehebung

  • toucheggkann nach einem Suspend-and-Resume-Zyklus aufhören zu arbeiten. Ich muss noch einen Weg finden, damit es automatisch neu startet.

  • Zumindest für mich und andere , toucheggnur Touch - Ereignisse auf dem Touchscreen, nicht auf dem Touchpad interpretieren. In diesem Fall ist dies erwünscht. Dies kann daran liegen, dass mein Touchpad einen Treiber verwendet, der keine Multi-Touch-Ereignisse für den X-Server bereitstellt ( synapticsund nicht libinput). Sie können überprüfen, an welche Geräte touchegggebunden wird, indem Sie mit beginnen GEIS_DEBUG=3 touchegg.

  • Wenn toucheggbei allen Programmen eine Art "festgefahrener halber Klick" auftritt, bei dem durch Tippen der Mauszeiger bewegt wird, aber keine Linksklicks mehr ausgelöst werden: Dies ist nicht das normale Verhalten. Unter Ubuntu 18.10 mit LXQt hatte ich dies zunächst nicht, hatte es dann aber über mehrere Neustarts toucheggund sogar Neustarts des gesamten Computers. Es verschwand, nachdem der Standard-Ubuntu-Desktop gestartet und dann zu LXQt zurückgekehrt wurde.

    Ein Fix in der toucheggKonfigurationsdatei durch Einrichten einer zusätzlichen Geste für das Tippen mit einem Finger behebt den "festgefahrenen halben Klick", aber ein anderes Fehlverhalten touchegg, das mit diesem Fehler einhergeht, bleibt bestehen, sodass es sich nicht um einen echten Fix handelt. Dieses Fehlverhalten beinhaltet, dass (1) toucheggjetzt auch alle Ereignisse verbraucht, für die es nicht konfiguriert ist, zumindest die für einen Finger, und (2) einige Java-basierte Programme ( freemindzum Beispiel) jetzt unter einem umgekehrten Problem mit "steckender Hälfte" leiden Klicks ", wobei die Cursorposition stecken bleibt, aber Klicks mit der linken Maustaste registriert werden. Dies wird vorübergehend behoben, indem im Java-basierten Programm eine Zwei-Finger-Aktion ausgeführt wird, um toucheggzu erkennen.

Tanius
quelle
0

Sie können easystrokeRechtsklicks mit einem Modifikator plus Tippen erstellen, z. B. Ctrl+ Alt+ Tippen. Mit zusätzlicher Konfiguration können Sie mit nur einem Touchscreen im Alleingang darauf zugreifen (siehe unten).

Dies ist sehr schön, da "Modifikator plus Tippen" als Rechtsklick nicht mit einem von touchegg(erkennt keine Modifikatoren), mouseemu(erkennt keine Taps, da ihnen Scancodes fehlen) oder xsetwacom "…" set Button 1 …(erkennt keine Taps als Fingereingabe nicht konfiguriert werden kann) konfiguriert werden kann ein Schaltflächenereignis im Treiber).

1. Installation

easystrokeProgramm nur minimal im Augenblick gehalten, aber in der Release Notes sie eine Verknüpfung zu einem letzten Paket Ubuntu, gebaut auf Ubuntu 18.04. Es hat gut funktioniert für mich (Ubuntu 18.10 hier). Sie können es wie folgt installieren:

wget http://openartisthq.org/easystroke/easystroke_0.6.0-0ubuntu8_amd64.deb
sudo apt install ./easystroke_0.6.0-0ubuntu8_amd64.deb

2. Konfiguration

  1. Starten Sie das Programm mit easystroke.

  2. Klicken Sie auf der zweiten Registerkarte "Einstellungen" auf "Gestenschaltfläche" und Ctrl+ Alt+ tippen Sie auf das graue Feld. Ctrl+ Altscheint die beste Wahl für Modifikatoren zu sein, zumindest unter LXQt, weil:

    • Sowohl Shift+ Klick als auch Ctrl+ Klick werden bereits für die Mehrfachauswahl verwendet und wären dafür nicht mehr verfügbar, wenn sie zugewiesen würden easystroke.
    • Alt, SuperUnd jede Kombination Beteiligung Superwird nicht gesehen durch easystroke. Dies ist wahrscheinlich ein LXQt- oder Openbox-Konfigurationsproblem, aber ich konnte es bisher nicht beheben.
  3. Klicken Sie auf der ersten Registerkarte "Aktionen" auf "Aktion hinzufügen".

  4. Konfigurieren Sie Ihre Aktion mit "Typ: Befehl" und "Details: xdotool keyup ctrl alt; xdotool click 3". Passen Sie es an die von Ihnen gewählten Modifikatoren an.

    Abhängig von den Modifikatoren ist es wichtig, zuerst die Modifikatoren zu löschen, um Nebenwirkungen zu vermeiden. Zum Beispiel Shiftwürde ein Rechtsklick in Chrome zur Textauswahl führen. Außerdem müssen die Modifikatoren explizit gelöscht werden, um zu verhindern, dass Modifikatoren beim Auslösen dieser Tastendrücke mit Software hängen bleiben (siehe Abschnitt 3 unten). Das Nicht-Löschen der Modifikatoren vor dem Ausführen des Befehls kann als Fehler angesehen werden easystroke.

  5. Klicken Sie auf "Strich aufzeichnen" und zeichnen Sie einen einzelnen Tipp auf.

  6. Sie können die (hier eher nutzlosen) Popups unter "Einstellungen → Darstellung → Popups anzeigen" deaktivieren.

  7. Sie können diese Gestenerkennung unter "Erweitert → Geräte" nur auf Ihren Touchscreen und möglicherweise auf das Stifteingabegerät beschränken.

Wenn Sie jetzt auf Ctrl+ Alt+ tippen, wird ein Rechtsklick erstellt.

Beachten Sie, dass dies easystrokeeine hervorragende Gestenerkennung für Single-Touch-Gesten ("Formen auf dem Bildschirm zeichnen") bietet, mit der Sie viele Aufgaben automatisieren können, während Sie den Touchscreen verwenden. Dies ist der Hauptzweck, während die Rechtsklick-Emulation nur ein Nebeneffekt ist.

3. Verbesserung: Nur mit der rechten Maustaste berühren

Verbessern wir nun diese Konfiguration, sodass Sie mit nur einer Hand und einem Touchscreen Rechtsklicks auslösen können, indem Sie (1) auf eine spezielle Bildschirmtaste tippen, die bedeutet, dass "das nächste Tippen ein Rechtsklick ist" und (2) dann tippen auf dem Bildschirm nur normal.

Hier ist ein Rezept für Lubuntu (LXQt) und die Verwendung des oben gewählten Modifikators Ctrl+ Alt, aber das Prinzip ist in allen Desktop-Umgebungen und mit allen Modifikatoren gleich: ein benutzerdefinierter Schnellstart-Eintrag im Bedienfeld.

  1. Erstellen Sie ein benutzerdefiniertes Symbol für Ihren Schnellstarteintrag und speichern Sie es unter ~/.icons/default/rightclick.png.

  2. Erstellen Sie eine benutzerdefinierte .desktopDatei und speichern Sie sie .local/share/applications/rightclick.desktopunter dem folgenden Inhalt. Beachten Sie, dass Sie usernamefür den absoluten Pfad angeben müssen.

    [Desktop Entry]
    Name=Rightclick
    Comment=Next tap is a rightclick via Ctrl + Alt + easystroke gesture.
    Icon=/home/matthias/.icons/default/rightclick.png
    Exec=xdotool keydown ctrl alt
    Type=Application
    Categories=System;Utility;
    StartupWMClass=localdomain.rightclick
    
  3. Fügen Sie Ihrem LXQt-Bedienfeld ein weiteres Schnellstart-Widget hinzu. Während Sie im Prinzip auch Ihr vorhandenes ändern können, habe ich festgestellt, dass eines in der unteren rechten Ecke des Bildschirms für Rechtshänder am natürlichsten ist und auch versehentliche Fehlklicks nur das Datum anzeigen (wenn dies neben dem steht links, wie in meinem Fall), anstatt eine große Anwendung zu starten.

  4. Öffnen Sie ~/.config/lxqt/panel.confden neuen [quicklaunch2]Abschnitt und passen Sie ihn an Ihre benutzerdefinierte .desktopDatei an. Auch hier müssen Sie liefern username. Beispiel, wie es aussehen kann:

    [quicklaunch2]
    alignment=Left
    apps\1\desktop=/home/username/.local/share/applications/rightclick.desktop
    apps\size=1
    type=quicklaunch
    
  5. Starten Sie das LXQt-Bedienfeld neu, damit die Änderungen wirksam werden. Dafür:

    1. Gehen Sie zu "LXQt-Menü → Einstellungen → LXQt-Einstellungen → Sitzungseinstellungen".
    2. Wählen Sie "Grundeinstellungen → LXQt-Module → Bedienfeld".
    3. Klicken Sie auf "Stop".
    4. Klicken Sie auf "Start".

     

    (Sie können auch killall lxqt-panel && lxqt-panelim Alt+ F2Startdialog ausführen , dies beeinträchtigt jedoch den im oben genannten Dialogfeld erkannten Bedienfeldstatus. Wenn Sie beide Techniken mischen, werden zwei Bedienfelder übereinander ausgeführt, wobei einem ein Bedienfeld fehlt Symbole. Also besser nicht. Das ist immer noch fehlerhaft.)

Wenn Sie spezielle Hardwaretasten an der Seite des Touchscreens haben, können Sie den xdotool keydown ctrl altBefehl stattdessen einer davon zuweisen .

4. Weitere Verbesserungen und Fehlerbehebung

  • Als netter Nebeneffekt ermöglicht die oben beschriebene Technik für Rechtsklicks nur mit Berührung auch den Einhandzugriff auf alle anderen Gesten, die Sie möglicherweise konfiguriert haben easystroke. Dies ist eine ziemlich leistungsstarke Funktion für die Automatisierung der Touchscreen-Nutzung.

  • Beachten Sie beim Konfigurieren anderer Gesten easystrokeden folgenden Fehler: easystrokeLöscht die ausgewählten Modifikatoren nicht, bevor Sie die konfigurierte Aktion ausführen. Die Aktionstypen "Schlüssel" und "Text" führen im obigen Fall zu Tastenkombinationen zusammen mit Ctrl+ Alt, wodurch sie unbrauchbar werden. Um dieses Problem zu umgehen, wählen Sie stattdessen den Aktionstyp "Befehl" und löschen Sie die Modifikatoren selbst wie oben beschrieben. Um Ctrl+ auszulösen V, wäre der Befehl:

    xdotool keyup ctrl alt; xdotool key "ctrl+v"
    

    (Die xdotoolOption --clearmodifiershilft hier nicht weiter, da sie nur die Modifikatoren während der Tastenkombination deaktiviert, um sie auszuführen, und sie anschließend erneut anwendet. In diesem Fall würde das nächste Tippen einen Rechtsklick gemäß der obigen Technik bewirken, aber wir möchten nicht das in diesem Fall.)

  • Wenn Sie während des Tests Modifikatoren festgefahren haben, wird der Zustand durch Drücken und Loslassen der Modifikatortasten auf der physischen Tastatur behoben.

  • Manchmal wurden beim Testen dieser Dinge meine LXQt-Ereignisse mit Tastatur und Maus sehr durcheinander gebracht. In einem solchen Fall half es, sich nur von der grafischen Umgebung abzumelden und erneut anzumelden.

  • Der sauberste Weg, um einen Einhand-Touch-Only-Vorgang zu implementieren easystroke, einschließlich für den Fall von Rechtsklicks, wie hier erforderlich, besteht darin, dass durch Tippen auf das easystrokeBedienfeldsymbol derselbe interne Status wie bei unserem oben konfigurierten benutzerdefinierten Bedienfeldsymbol erreicht wird. aber ohne den Status des Tastaturmodifikators tatsächlich zu ändern, da dies dazu führen kann, dass Modifikatoren usw. hängen bleiben. Um das easystrokeFenster anzuzeigen, müsste man dann das Kontextmenü des Bedienfeldsymbols verwenden. Dies erfordert natürlich einige Änderungen im easystrokeCode.

Tanius
quelle