Emulieren eines Mausklicks mit einer Tastatur


12

Ich möchte eine Taste auf einer Tastatur erstellen, die wie ein Mausklick funktioniert, vorzugsweise mit xmodmap. Wie mache ich es?

Ausführen von Ubuntu 10.10.


setxkbmap -option keypad:pointerkeys würde tun was du willst. Dann eine Schichtnummer.
peterh

Antworten:


6

Mit den folgenden Schritten können Sie Ihre Tastaturtasten mit Maustasten verbinden.

  1. Identifizieren Sie die Tastaturtaste mit xev Nützlichkeit.

    Wenn Sie das xev-Hilfsprogramm ausführen und die Tastaturtaste erneut drücken, wird dies folgendermaßen ausgegeben

    KeyPress event, serial 37, synthetic NO, window 0x3e00001,
    Wurzel 0x82, subw 0x0, Zeit 28977858 (-419.294), Wurzel: (175,613),
    Zustand 0x0, Schlüsselcode 38 (keysym 0x61, a)
    XLookupString liefert 1 Byte: (61) "a"
    XmbLookupString liefert 1 Byte: (61) "a"
    XFilterEvent gibt zurück: False

    Notieren Sie sich den Schlüsselcode, der neu zugeordnet wird.

  2. Führen Sie das Dienstprogramm xkbset aus

    xkbset m

  3. Verwenden Sie das xmodmap-Dienstprogramm neu.

    Im unteren Fall wird die Menütaste der rechten Maustaste zugeordnet.

    xmodmap -e "keycode 135 = Pointer_Button3"


siehe mein Skript superuser.com/questions/313926/… Verwenden Sie Tasten für Maustasten unter Linux. Alternative zu AHK?
Russo

3

Ich könnte mir vorstellen, dass Sie dies mit xmodmap und der Pointer_Button1-Keymap erreichen könnten.

Suchen Sie in der Datei /usr/include/X11/keysymdef.h nach der genauen Schreibweise und Groß- / Kleinschreibung, es sollte jedoch möglich sein, eine Tastaturtaste mit einer Maustaste (1,2,3 usw.) zuzuordnen, siehe die Header-Datei in der Nähe von Zeile 460)

keysym W = Pointer_Button1

KÖNNTE funktionieren, wodurch die W-Taste als linke Maustaste fungiert. Ich würde empfehlen, einen anderen Schlüssel zu verwenden, es sei denn, Sie verwenden keine Ws, aber was auch immer für Sie funktioniert. (Nein, ich werde es nicht selbst ausprobieren, ich brauche meine W's!)

Werfen Sie einen Blick auf die Manpage für xmodmap und sicherlich auf den Inhalt von /usr/include/X11/keysymdef.h, um die Rechtschreibung zu überprüfen. Löschen Sie das XK_-Präfix, um die Keysym-Namen für xmodmap zu verwenden.

Sieht so aus, als wäre es (keysymdef.h) im x11-proto-core-dev-Paket für mein Debian-System ... Sie möchten die Datei und deren Inhalt online suchen. Sie zweifeln, dass Sie alle beteiligten -dev-Dateien installieren möchten Holen Sie sich einfach das. GIYF.

Etwas kitzelt in meinem Kopf über einen anderen Weg, dies zu tun, aber mir kommt gerade nichts.

OH! Abhängig von Ihren Anforderungen können Sie die Tastatur-Maus-Emulation betrachten. Dabei wird aus dem numerischen Tastenfeld eine voll funktionsfähige Zwei-Tasten-Maus (kein Scrollrad!).


Zu Leserinformationen über "Keyboard Mouse Emulation": de.linuxreviews.org/… Die Tastenkombination zum Einschalten war standardmäßig deaktiviert seit einer Weile her und braucht jetzt Option XkbOptions "keypad:pointerkeys". Das Schlagen von Tasten ist nicht die einzige Möglichkeit, dies zu aktivieren: xkbset m tut dies gemäß crunchbang.org/forums/viewtopic.php?id=27937 , und kann das böse Timeout steuern und auch von der Cmdline aus deaktivieren.
imz -- Ivan Zakharyaschev

2

Der eingebaute "Keyboard Mouse Emulation" -Modus kann dies und / aber hat vorkonfigurierte Tastenkombinationen zum Emulieren verschiedener Mausklicks und -drücke (zum Ziehen).

(FYI: Die Tastenkombination zum Einschalten war aus der Standard-Keymap entfernt seit einer Weile her und braucht jetzt Option XkbOptions "keypad:pointerkeys".)

Das Schlagen einer Taste ist nicht die einzige Möglichkeit, diesen Modus zu aktivieren:

xkbset m

tut dies gemäß http://crunchbang.org/forums/viewtopic.php?id=27937 , und kann das böse Timeout steuern und auch von der Cmdline aus deaktivieren. So deaktivieren Sie das böse Timeout:

xkbset exp =m

So, xkbset ist wirklich praktischer (als nur einen Schlüssel zum Einschalten dieses Modus zu haben), weil xkbset gibt mehr Kontrolle über das bevorzugte Timeout usw.

Das Nummernfeld wird verwendet. Einige grundlegende Kombinationen (mehr unter http://de.linuxreviews.org/HOWTO_use_the_numeric_keyboard_keys_as_mouse_in_XOrg :

  • /. *. - sind für auswählen die linke, mittlere oder rechte Taste;
  • 5 ist zum Klicken mit der ausgewählt Taste;
  • 0 und . sind zum Drücken und Loslassen der ausgewählt Schaltfläche (zum Ziehen usw.)

Hinweise zu Problemen, die "Keyboard Mouse Emulation" immer aktivieren

  1. Ich konnte "Keyboard Mouse Emulation" nicht immer aktivieren. Also habe ich mich auf einen speziellen Schlüssel verlassen (wie in keypad:pointerkeys ) um dies zu tun.

  2. Ich habe herausgefunden, dass Xfce diese Einstellungen auch beim Start durcheinander gebracht hat xkbset m Wird vor Xfce ausgeführt, ist die Einstellung nicht aktiv. Daher musste ich eine Einstellung in der Xfce-Konfiguration ändern, um meinem allgemeinen Wunsch zu entsprechen, nämlich Xfce-Einstellungen: Eingabehilfen: Maus: Aktivieren Sie die Emulation . (Die Quelle, in der ich von der Existenz einer solchen Xfce-Option erfuhr, war: https://bugzilla.xfce.org/show_bug.cgi?id=3860 .) Das scheint geholfen zu haben. (Ich deaktiviere auch mein Touchpad mit xinput float ...; Dies wird durch das Wechseln zwischen Linux-Konsolen durcheinander gebracht, kann aber durch Umschalten dieses Geräts in den Xfce-Einstellungen erneut behoben werden.)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.