Emulowane kliknięcie myszą za pomocą klawiatury

13

Chcę zrobić przycisk na klawiaturze, który będzie działał jak kliknięcie myszą, najlepiej za pomocą xmodmap. Jak mam to zrobić?

Uruchamianie Ubuntu 10.10.

Strefa
źródło
setxkbmap -option keypad:pointerkeyszrobiłby co chcesz. Potem numblok shift.
peterh - Przywróć Monikę

Odpowiedzi:

6

Poniższe kroki pomogą ci połączyć klawisze z klawiszami myszy.

  1. Zidentyfikuj klawisz klawiatury za pomocą xevnarzędzia.

    Uruchomienie narzędzia xev i naciśnięcie klawisza klawiatury w celu ponownego podłączenia spowoduje wyświetlenie czegoś takiego

    KeyPress event, serial 37, synthetic NO, window 0x3e00001,
    root 0x82, subw 0x0, time 28977858, (-419,294), root:(175,613),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

    Zanotuj kod klucza, który zostanie ponownie przypisany.

  2. Uruchom narzędzie xkbset

    xkbset m

  3. Ponowne mapowanie za pomocą narzędzia xmodmap.

    W poniższym przypadku klawisz menu jest przypisany do prawego przycisku myszy.

    xmodmap -e "keycode 135 = Pointer_Button3"

ramasamyz
źródło
zobacz mój skrypt superuser.com/questions/313926/... Używaj klawiszy do przycisków myszy w systemie Linux. Alternatywa dla AHK?
Russo,
4

Wyobrażam sobie, że można to osiągnąć za pomocą xmodmap i mapy klawiszy Pointer_Button1.

Sprawdź w pliku /usr/include/X11/keysymdef.h dokładną pisownię i wielkie litery, ale powinno być możliwe odwzorowanie klawisza klawiatury na przycisk myszy (1,2,3 itd.), Nawet podwójne kliknięcie ( zobacz plik nagłówka, w pobliżu około linii 460)

keysym W = Pointer_Button1

MOŻE działać, powodując, że klawisz W działa jak lewy przycisk myszy. Poleciłbym użyć innego klucza, chyba że nie używasz żadnego W, ale cokolwiek działa dla Ciebie. (nie, nie zamierzam tego próbować sam, potrzebuję swoich W!)

Zajrzyj również na stronę podręcznika dla xmodmap, a na pewno zawartość /usr/include/X11/keysymdef.h, aby poprawić pisownię. Upuść prefiks XK_, aby użyć nazw kluczy dla xmodmap.

Wygląda na to, że jest to (keysymdef.h) w pakiecie x11-proto-core-dev dla mojego systemu Debian ... możesz poszukać pliku i jego zawartości online, wątpię, czy chcesz zainstalować wszystkie zaangażowane pliki -dev w po prostu to TY. GIYF.

Coś łaskocze mi w głowie na inny sposób, aby to zrobić, ale teraz nic mi nie przychodzi.

O! W zależności od potrzeb możesz zajrzeć do Emulacji myszy klawiaturowej, która zamienia klawiaturę numeryczną w pełni funkcjonalną mysz z dwoma przyciskami (bez kółka!).

lornix
źródło
1
Informacje dla czytelników na temat „Emulacji myszy klawiaturowej”: en.linuxreviews.org/… Kombinacja klawiszy umożliwiająca włączenie tej opcji jest domyślnie wyłączona od pewnego czasu i teraz jest potrzebna Option XkbOptions "keypad:pointerkeys". Wciśnięcie klawiszy nie jest jedynym sposobem, aby to włączyć: xkbset mrobi to zgodnie z crunchbang.org/forums/viewtopic.php?id=27937 i może kontrolować nieprzyjemny limit czasu, a także wyłączyć go z cmdline.
imz - Ivan Zakharyaschev
3

Wbudowany tryb „Emulacji myszy na klawiaturze” może to zrobić i / lub ma wstępnie skonfigurowane kombinacje klawiszy do emulacji różnych kliknięć i naciśnięć myszy (do przeciągania).

(FYI: Kombinacja klawiszy, aby włączyć tę funkcję, została usunięta z domyślnej mapy klawiszy od pewnego czasu i teraz potrzebuje Option XkbOptions "keypad:pointerkeys").

Wciśnięcie klawisza nie jest jedynym sposobem na włączenie tego trybu:

xkbset m

robi to zgodnie z http://crunchbang.org/forums/viewtopic.php?id=27937 i może kontrolować nieprzyjemny limit czasu, a także wyłączyć go z cmdline. Aby wyłączyć nieprzyjemny limit czasu:

xkbset exp =m

Jest więc xkbsetnaprawdę bardziej przydatny (niż posiadanie klucza tylko do włączenia tego trybu), ponieważ xkbsetdaje większą kontrolę nad preferowanym czasem oczekiwania itp.

Używana jest klawiatura numeryczna. Kilka podstawowych kombinacji (więcej na http://en.linuxreviews.org/HOWTO_use_the_numeric_keyboard_keys_as_mouse_in_XOrg :

  • /, *, -Są do wyboru w lewo, środkowy lub prawy przycisk;
  • 5służy do klikania wybranym przyciskiem;
  • 0i .służą do naciskania i zwalniania wybranego przycisku (do przeciągania itp.)

Uwagi na temat problemów z włączaniem „Emulacji klawiatury myszy” zawsze włączone

  1. Nie zawsze mogłem włączyć „Emulację myszy na klawiaturze”. W tym celu polegałem na specjalnym kluczu (jak w keypad:pointerkeys).

  2. Dowiedziałem się, że Xfce bałaganował również te ustawienia podczas uruchamiania, więc jeśli xkbset mjest uruchamiany przed Xfce, to ustawienie nie jest aktywne. Dlatego musiałem zmienić ustawienie w konfiguracji Xfce, aby pasowało do mojego ogólnego życzenia, a mianowicie: Ustawienia Xfce: Dostępność: Mysz: włącz emulację . (Dla mnie źródłem informacji o istnieniu takiej opcji Xfce było: https://bugzilla.xfce.org/show_bug.cgi?id=3860 .) Wydaje się, że to pomogło. (Wyłączam również touchpad za pomocą xinput float ...; jest to męczące przez przełączanie między konsolami Linux, ale można to obejść ponownie, wyłączając to urządzenie przynajmniej w ustawieniach Xfce.)

imz - Ivan Zakharyaschev
źródło