Jak emulować kliknięcie prawym przyciskiem myszy na ekranie dotykowym?

9

Mój nowy laptop z ekranem dotykowym nie ma przycisku menu (tzn. Ten zachowuje się jak kliknięcie prawym przyciskiem myszy) - ten zwykle obok prawego klawisza Ctrl.

ponieważ nie można kliknąć lewym przyciskiem dotykiem, próbuję utworzyć niestandardowy skrót klawiaturowy dla Alt GR dla tej funkcji (w Systemie> Klawiatura> Skróty> Skróty niestandardowe)

Korzystając z xevpolecenia z wbudowaną klawiaturą (która ma przycisk menu), dowiedziałem się, że informacje o przycisku to:

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

Nie mam jednak pojęcia, co zrobić z tymi informacjami ...

btw Używam Ubuntu 13.04.

Jakakolwiek pomoc byłaby najbardziej doceniana ...

Ismail Moghul
źródło
Mam dokładnie taki sam problem z moją
Aspire P3
@ user65390 czy próbowałeś odpowiedzi Freddiego Schillera ...
Ismail Moghul
1
powinieneś edytować to pytanie, aby usunąć geekyness. Po prostu powiedz, jak kliknąć ekran dotykowy prawym przyciskiem myszy? Pytanie, na które teraz udzielono odpowiedzi, wydaje się zbyt techniczne, aby faktycznie pasowało do odpowiedzi
Bhikkhu Subhuti

Odpowiedzi:

12

Musisz włączyć drugie kliknięcie (jak skomentowała AliNa) za pomocą gsettings set org.gnome.desktop.a11y.mouse secondary-click-enabled "true"lub z edytorem dconf.

Wtedy możliwe jest, że Ubuntu obsługuje ekran dotykowy częściowo jak touchpad, gdzie dotyk nie uruchamia naciśnięcia myszy. Zamiast tego musisz nacisnąć krótko + dotknij i przytrzymaj.

Freddi Schiller
źródło
Niestety ta technika jest ograniczona do środowisk graficznych opartych na Gnome3, takich jak standardowe Ubuntu. Długie naciśnięcie, aby kliknąć prawym przyciskiem myszy, działa również w Chrome / Chromium po wyjęciu z pudełka, ale tylko dlatego, że obsługuje własną obsługę zdarzeń dotykowych.
tanius
6

Po prostu dotykaj ekranu przez 2 lub 3 sekundy, a powinno się pojawić tak zwane „właściwe menu”. Jest to normalny sposób emulacji kliknięcia prawym przyciskiem myszy na dowolnym ekranie dotykowym.

Radu Rădeanu
źródło
1
Najpierw prawdopodobnie powinieneś włączyć drugie kliknięcie, tylko przez gsettings set org.gnome.desktop.a11y.mouse secondary-click-enabled "true"lub za pomocą Dconf Editor.
AliN
Wpisałem powyższe polecenie do terminala, a następnie przeszedłem nawet do ustawień uniwersalnych i zmniejszyłem opóźnienie akceptacji do min. jednak to nadal nie rozwiązuje problemu - kiedy używam myszy, pojawia się menu, ale przy użyciu ekranu dotykowego nie działa ...
Ismail Moghul
1
@IsmailM Myślę, że powinieneś porozmawiać o tym ze swoim sprzedawcą / producentem ...
Radu Rădeanu
@ RaduRădeanu Przyniosłem ten laptop od Johna Lewisa z Windows 8 na nim (a funkcja ekranu dotykowego działa poprawnie na Windows 8). Nadal sądzisz, że powinienem z nimi porozmawiać, ponieważ sam zainstalowałem Ubuntu ...
Ismail Moghul
@IsmailM Tak, powinieneś.
Radu Rădeanu,
1

Jeśli masz ekran dotykowy Wacom (za pomocą sterownika xf86-input-wacom) i jest on w stanie obsługiwać co najmniej dwa palce jednym palcem, wówczas kliknięcie prawym przyciskiem myszy spowoduje:

  1. Dotknij i przytrzymaj pierwszym palcem.
  2. Teraz stuknij drugim palcem.

Jeśli to jeszcze nie działa, znajdź nazwę produktu ekranu dotykowego, xinput --lista następnie włącz tę funkcję za pomocą:

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

Aby wprowadzić tę zmianę na stałe, zobacz moją drugą odpowiedź dotyczącą tej techniki.

W przeciwieństwie do długich kliknięć prawym przyciskiem myszy w Gnome / Ubuntu Shell, działa to we wszystkich środowiskach komputerowych, ponieważ jest to (starsza) funkcja na poziomie sterownika. Pamiętaj tylko, że w niektórych programach mogą powodować problemy z kliknięciem lewym przyciskiem myszy na ekranie dotykowym , dlatego musiałem je wyłączyć w swoim systemie.

Tanius
źródło
0

Dla tych, którzy mają ten klawisz Menu na swojej klawiaturze, notatka w pytaniu o korzystaniu że aby stworzyć prawym przyciskiem myszy jest rzeczywiście świetny pomysł. Ponieważ nie jest to oczywiste, oto jak to działa:

  1. Stuknij i przytrzymaj ekran jednym palcem. Nie puszczaj palca, ponieważ spowodowałoby to kliknięcie lewym przyciskiem, co może mieć niepożądane skutki w Twojej aplikacji. Dotknięcie i przytrzymanie przypomina jednak naciśnięcie i zwolnienie lewego przycisku myszy i zwykle nie wynika z tego żadna akcja w aplikacji. Ale pozycja wskaźnika myszy została już zmieniona na miejsce, w którym chcemy kliknąć prawym przyciskiem myszy, dlatego wykonujemy ten krok.

  2. Naciśnij i zwolnij klawisz Menu. Już po naciśnięciu klawisza uruchamiane jest kliknięcie prawym przyciskiem.

Oczywiście ta technika wymaga dwóch rąk i jest całkowicie niemożliwa na komputerach przenośnych w trybie tabletu. Ma więc ograniczone praktyczne zastosowanie.

Tanius
źródło
0

Spośród moich odpowiedzi na to pytanie jest to mój osobisty faworyt.

Jeśli masz ekran dotykowy, który obsługuje przynajmniej dotyk dwoma palcami, możesz go zainstalować toucheggi skonfigurować tak, aby interpretował (na przykład) dotyk dwoma palcami jako kliknięcie prawym przyciskiem. Próbowałem tego pod Lubuntu 18.10 i działa.

1. Instalacja

touchegg jest dostępny w repozytoriach Ubuntu 18.10, więc możesz go zainstalować w następujący sposób:

sudo apt install touchegg

Aby go uruchomić, wykonaj touchegg. Podczas wykonywania go w terminalu możesz sprawdzić na jego wyjściu, czy poprawnie wykrywa twoje gesty wielodotykowe.

Aby toucheggrozpocząć automatycznie dla każdej sesji LXQt, po prostu dodaj ją do Autostartu (menu LXQt → Preferencje → Ustawienia LXQt → Ustawienia sesji → Autostart).

2. Sposoby konfiguracji touchegg

Możesz skonfigurować toucheggna dwa alternatywne sposoby:

  • Konfiguracja za pomocą pliku konfiguracyjnego. Edytuj plik ~/.config/touchegg/touchegg.conf. Aby zmiany były skuteczne, wykonaj następujące czynności w terminalu lub za pomocą okna dialogowego Alt+ F2run:

    killall touchegg; touchegg
    
  • Konfiguracja z GUI. toucheggma ładny graficzny interfejs użytkownika touchegg-gui, który można zobaczyć tutaj . Nie jest to jednak część toucheggpakietu Ubuntu. Alternatywnie możesz zainstalować GUI touchegg-gce zgodnie z opisem tutaj . touchegg-gcedziała, ale musisz ponownie uruchomić ręcznie toucheggpo zapisaniu zmian w pliku konfiguracyjnym, ponownie wykonując:

    killall touchegg; touchegg
    

3. Konfiguracja emulacji kliknięcia prawym przyciskiem myszy

Aby skonfigurować kliknięcie prawym przyciskiem myszy dwoma palcami, możesz użyć tego pliku konfiguracyjnego do ~/.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>

Komentarze do toucheggkonfiguracji:

  • Kliknięcie prawym przyciskiem myszy dwoma palcami, jak pokazano powyżej, jest już zawarte w domyślnym pliku konfiguracyjnym, który jest w zestawie touchegg. (Ubuntu 18.10 tutaj.)

  • Program będzie czekał composed_gestures_time(podany w milisekundach) na zakończenie czynności związanych z gestami składającymi się z wielu części (takich jak dotykanie dotknięć), a dopiero potem ich interpretację. Dlatego w przypadku używania toucheggtylko gestów jednoczęściowych, takich jak kliknięcie prawym przyciskiem myszy dwoma palcami, możemy to ustawić, 0aby zapobiec zauważalnym opóźnieniom w działaniu. Jest to również domyślne w pliku konfiguracyjnym utworzonym przez touchegg.

  • Przynajmniej na moim ekranie dotykowym stuknięcie dwoma palcami nie jest rozpoznawane po dotknięciu ekranu obiema palcami dokładnie w tym samym czasie. Ale kiedy jest nawet bardzo mała przerwa czasowa (tak, że słychać dwa uderzenia, prawdopodobnie ≥10 ms), działa niezawodnie. Po prostu przesuwam palec wskazujący i środkowy z małą pionową szczeliną w kierunku ekranu i działa niezawodnie.

  • Kliknięcie prawym przyciskiem zostanie uruchomione w miejscu tego palca (jednego z dwóch w tym geście), który dotyka najpierw ekranu.

  • toucheggpozwala na interpretację wszystkich zdarzeń, które nie zostały skonfigurowane do bąbelkowania aż do aplikacji pod kursorem. To jest dobre, bo rodzimy pinch-zoom itp realizowane w chrom, chrom, Evince na przykład pracuje sposób bardziej gładka niż poprzez touchegg.

  • toucheggmoże być używany wraz z (wysoce godnym polecenia!) oprogramowaniem do rozpoznawania gestów jednym dotknięciem easystrokebez zakłóceń. Oczywiście nie należy ich konfigurować do wyzwalania przez te same zdarzenia.

4. Rozwiązywanie problemów

  • toucheggmoże przestać działać po cyklu zawieszenia i wznowienia. Nadal muszę znaleźć sposób, aby uruchomił się automatycznie.

  • Przynajmniej dla mnie i innych , toucheggzinterpretuje tylko zdarzeń dotykowych na ekranie dotykowym, a nie na touchpadzie. W tym przypadku jest to pożądane. Może to być spowodowane tym, że mój touchpad używa sterownika, który nie ujawnia zdarzeń wielodotykowych na serwerze X ( synapticszamiast libinput). Możesz sprawdzić, z którymi urządzeniami się toucheggłączy, zaczynając od GEIS_DEBUG=3 touchegg.

  • Jeśli toucheggpowoduje rodzaj „zablokowanego połowicznego kliknięcia” dla wszystkich programów, gdzie stuknięcia przesuwają wskaźnik myszy, ale nie powodują już kliknięcia lewym przyciskiem: to nie jest normalne zachowanie. W Ubuntu 18.10 z LXQt nie miałem tego na początku, ale potem miałem go przez kilka ponownych touchegguruchomień, a nawet restartuje cały komputer. Zniknął po uruchomieniu domyślnego pulpitu Ubuntu, a następnie powrócił do LXQt.

    Poprawka w toucheggpliku konfiguracyjnym poprzez ustawienie dodatkowego gestu na stuknięcie jednym palcem naprawi „zablokowane pół kliknięcie”, ale inne niewłaściwe zachowanie związane toucheggz tym błędem pozostaje, więc nie jest to prawdziwa poprawka. To niewłaściwe zachowanie obejmuje to, że (1) toucheggbędzie teraz zużywał wszystkie zdarzenia, dla których nie jest skonfigurowany, przynajmniej te dla jednego palca, oraz (2) niektóre programy oparte na Javie ( freemindna przykład) będą teraz cierpieć z powodu odwrotnego problemu z „zablokowaną połową” kliknięcia ”, gdzie pozycja kursora zostanie zablokowana, ale kliknięcia lewym przyciskiem myszy zostaną zarejestrowane. Jest to tymczasowo naprawione przez wykonanie akcji dwoma palcami w programie Java, toucheggaby rozpoznać.

Tanius
źródło
0

Możesz użyć easystrokedo tworzenia kliknięć prawym przyciskiem z modyfikatorem plus dotknij, takich jak Ctrl+ Alt+ dotknij. Dzięki dodatkowej konfiguracji można uzyskać do niej dostęp tylko za pomocą ekranu dotykowego, patrz poniżej.

Jest to całkiem miłe, ponieważ „modyfikator plus stuknięcie” jako kliknięcie prawym przyciskiem myszy nie może być skonfigurowane z żadnym touchegg(nie rozpoznaje modyfikatorów), mouseemu(nie rozpoznaje stuknięć, ponieważ nie mają skancodów) lub xsetwacom "…" set Button 1 …(nie rozpoznaje stuknięć, ponieważ wprowadzanie palcem nie jest zdarzenie przycisku w sterowniku).

1. Instalacja

easystrokeprogram jest obecnie minimalnie utrzymywany, ale w informacjach o wersji odsyłają do najnowszego pakietu Ubuntu, zbudowanego na Ubuntu 18.04. Działa dobrze dla mnie (tutaj Ubuntu 18.10). Możesz zainstalować go w następujący sposób:

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

2. Konfiguracja

  1. Uruchom program za pomocą easystroke.

  2. Na drugiej karcie „Preferencje” kliknij „Gesture Button” i Ctrl+ Alt+ stuknij w szare pole. Ctrl+ Altwydaje się być najlepszym wyborem modyfikatora, przynajmniej w LXQt, ponieważ:

    • Zarówno Shiftkliknięcie +, jak i Ctrlkliknięcie są już używane do wielokrotnego wyboru i stałyby się niedostępne, gdyby zostały przypisane easystroke.
    • Alt, Supera żadna kombinacja obejmująca Supernie będzie widoczna przez easystroke. Jest to prawdopodobnie problem z konfiguracją LXQt lub Openbox, ale do tej pory nie mogłem go rozwiązać.
  3. W pierwszej zakładce „Działania” kliknij „Dodaj działanie”.

  4. Skonfiguruj swoje działanie za pomocą „Type: Command” i „Details: xdotool keyup ctrl alt; xdotool click 3”. Dostosuj zgodnie z wybranymi modyfikatorami.

    W zależności od modyfikatorów, najpierw wyczyszczenie modyfikatorów jest ważne, aby zapobiec skutkom ubocznym. Na przykład Shift+ kliknięcie prawym przyciskiem myszy w Chrome prowadzi do zaznaczenia tekstu. Konieczne jest również wyraźne usunięcie modyfikatorów, aby zapobiec zablokowaniu modyfikatorów podczas uruchamiania tych naciśnięć klawiszy za pomocą oprogramowania (patrz sekcja 3 poniżej). Brak samodzielnego usunięcia modyfikatorów przed wykonaniem polecenia można uznać za błąd easystroke.

  5. Kliknij „Record Stroke” i nagraj jednym dotknięciem.

  6. Możesz wyłączyć (tutaj raczej bezużyteczne) wyskakujące okienka w „Preferencjach → Wygląd → Pokaż wyskakujące okienka”.

  7. Możesz ograniczyć to rozpoznawanie gestów tylko do ekranu dotykowego i być może urządzenia do wprowadzania piórem w „Zaawansowane → Urządzenia”.

Teraz Ctrl+ Alt+ dotknij utworzy kliknięcie prawym przyciskiem myszy.

Zauważ, że easystrokema świetne rozpoznawanie gestów dla gestów jednym dotknięciem („rysowanie kształtów na ekranie”), których można użyć do zautomatyzowania wielu zadań podczas korzystania z ekranu dotykowego. To jest jego główny cel, podczas gdy emulacja prawym przyciskiem myszy to tylko efekt uboczny.

3. Ulepszenie: kliknięcia prawym przyciskiem myszy

Teraz poprawmy tę konfigurację, abyś mógł uruchamiać kliknięcia prawym przyciskiem jedną ręką i ekranem dotykowym poprzez (1) stuknięcie specjalnego przycisku ekranowego, co oznacza, że ​​„następne stuknięcie to kliknięcie prawym przyciskiem” i (2), a następnie stuknięcie na ekranie po prostu normalnie.

Oto przepis na Lubuntu (LXQt) i użycie wybranego powyżej modyfikatora Ctrl+ Alt, ale zasada jest taka sama we wszystkich środowiskach pulpitu i we wszystkich modyfikatorach: niestandardowy wpis szybkiego uruchamiania w panelu.

  1. Utwórz niestandardową ikonę dla pozycji szybkiego uruchamiania i zapisz ją jako ~/.icons/default/rightclick.png.

  2. Utwórz .desktopplik niestandardowy i zapisz go jako .local/share/applications/rightclick.desktopz następującą zawartością. Pamiętaj, że musisz podać usernameabsolutną ścieżkę.

    [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. Dodaj kolejny widget szybkiego uruchamiania do panelu LXQt. Chociaż w zasadzie możesz również zmodyfikować swój istniejący, odkryłem, że ten umieszczony w prawym dolnym rogu ekranu jest najbardziej naturalny dla operacji praworęcznych, a także przypadkowe błędne kliknięcia pokażą tylko datę (jeśli to jest obok lewo, jak w moim przypadku) zamiast uruchamiania dużej aplikacji.

  4. Otwórz ~/.config/lxqt/panel.confi dostosuj nową [quicklaunch2]sekcję, aby odwoływała się do .desktoppliku niestandardowego . Ponownie musisz dostarczyć username. Przykład, jak może to wyglądać:

    [quicklaunch2]
    alignment=Left
    apps\1\desktop=/home/username/.local/share/applications/rightclick.desktop
    apps\size=1
    type=quicklaunch
    
  5. Uruchom ponownie panel LXQt, aby wprowadzić zmiany. Za to:

    1. Przejdź do „Menu LXQt → Preferencje → Ustawienia LXQt → Ustawienia sesji”.
    2. Wybierz „Ustawienia podstawowe → Moduły LXQt → Panel”.
    3. Kliknij „Stop”.
    4. Kliknij „Start”.

     

    (Można również wykonać killall lxqt-panel && lxqt-panelw oknie dialogowym Alt+ F2uruchamiania, ale będzie to zakłócać status panelu rozpoznany w wyżej wspomnianym oknie dialogowym, a jeśli zmieszasz obie techniki, będziesz mieć dwa panele uruchomione jeden nad drugim, z jednym brakującym ikony. Więc lepiej nie. To wciąż jest błąd.)

Ponadto, jeśli masz specjalne przyciski sprzętowe z boku ekranu dotykowego, możesz xdotool keydown ctrl altzamiast tego przypisać polecenie do jednego z nich.

4. Inne ulepszenia i rozwiązywanie problemów

  • Jako przyjemny efekt uboczny powyższa technika klikania prawym przyciskiem myszy umożliwia również dostęp jedną ręką do wszystkich innych gestów, które możesz skonfigurować easystroke. To dość potężna funkcja do automatyzacji użytkowania ekranu dotykowego.

  • Podczas konfigurowania innych gestów easystrokenależy pamiętać o następującym błędzie: easystrokenie usuwa wybranych przez nas modyfikatorów przed wykonaniem skonfigurowanej akcji. Wszystkie typy akcji „Klucz” i „Tekst” dają kombinacje klawiszy wraz z Ctrl+ Altw powyższym przypadku, co czyni je bezużytecznymi. Aby obejść ten problem, wybierz zamiast tego typ akcji „Polecenie” i samodzielnie usuń modyfikatory w taki sam sposób, jak powyżej. Aby uruchomić Ctrl+ V, polecenie będzie wyglądać następująco:

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

    ( xdotoolOpcja --clearmodifiersnie pomaga tutaj, ponieważ wyłącza tylko modyfikatory podczas kombinacji klawiszy, aby je wykonać i ponownie zastosować później. Co w takim przypadku spowodowałoby kliknięcie prawym przyciskiem myszy zgodnie z powyższą techniką, ale nie chcielibyśmy że w tym przypadku.)

  • Jeśli kiedykolwiek utknęłyście modyfikatory podczas testowania, naciśnięcie i zwolnienie klawiszy modyfikatora na klawiaturze fizycznej naprawi ten warunek.

  • Czasami podczas testowania tych rzeczy moje LXQt zdarzenia związane z klawiaturą i myszą bardzo się popsuły. W takim przypadku pomogło tylko wylogowanie ze środowiska graficznego i ponowne zalogowanie.

  • Najczystszym sposobem na wdrożenie obsługi tylko jedną ręką za pomocą dotyku easystroke, w tym w przypadku kliknięć prawym przyciskiem zgodnie z wymaganiami tutaj, byłoby stuknięcie easystrokeikony panelu wprowadza go w ten sam stan wewnętrzny, co nasza niestandardowa ikona panelu skonfigurowana powyżej, ale bez faktycznej zmiany stanu modyfikatora klawiatury, ponieważ może to prowadzić do zablokowania modyfikatorów itp. Aby wyświetlić easystrokeokno, należałoby użyć menu kontekstowego ikony panelu. Oczywiście wymaga to pewnych zmian w easystrokekodzie.

Tanius
źródło