Wie simuliert man eine Tastatureingabe?

15

Dies ist die größte Sache, die mich davon abhält, Ubuntu / Linux zu genießen.

Idealerweise möchte ich mein AutoHotKey-Skript nur auf Ubuntu ausführen können, aber ich hatte nicht viel Glück damit, dass das mit Wine funktioniert.

Hier ist, was ich in AHK mache (mit zusätzlichen Modifikatoren funktioniert auch, Shift+ Alt+ list Shift+ right).

!l:: Send, {Right}
+!l:: Send, +{Right}
^!l:: Send, ^{Right}
^+!l:: Send, ^+{Right}

Ich habe AutoKey ausprobiert, aber es hat keine Eingabe verbraucht. Die Zuordnung Alt+ Izur rechten Pfeiltaste hat funktioniert, aber es wurde immer noch ausgeführt Alt+ I, wodurch manchmal ein Element aus dem Anwendungsmenü ausgewählt wird.

Das xbindkeysBeste, was ich bekommen habe, war das Einrichten von Hotkeys. Das scheint großartig zu funktionieren. Und xvkbdzur Simulation von Eingaben; Dieser Teil ist wirklich fehlerhaft; Dies funktioniert nicht in allen Programmen und führt unter anderem dazu, dass ich den Fokus stark verliere.

Für alle, die sich fragen, was ich versuche: Ich benutze I J K Lals Pfeiltasten, während ich Altunten bin .

Farzher
quelle
Hey Stephen, ich suche genau das Gleiche. Ist Ihnen das gelungen?
Lolmaus - Andrey Mikhaylov

Antworten:

18

Ich habe xvkbd noch nie benutzt, aber es gibt zwei andere großartige Programme zum Simulieren von Tastatureingaben, die mir gefallen und die ich verwende. Eins ist xteund das andere ist xdotool.

sudo apt-get install xautomation xdotool  

Beide xdotoolund xtesind sich sehr ähnlich, aber da ich xtedie meisten verwende, gehe ich auf diese ein.

xte:

Die grundlegendste Syntax für xtelautet:

xte 'command key/mousebutton/xyCoordinates'

xte Es kann jedoch viel mehr als nur Tastatureingaben erstellen, es kann auch die Maus bewegen und das Drücken von Maustasten simulieren, unter anderem.

Syntaxbeispiele:

  • So rufen Sie einen einzelnen Tastendruck auf: xte 'key keyName'

  • So rufen Sie eine Tastenkombination auf: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName

  • So rufen Sie eine Maustaste auf: xte 'mouseclick buttonNumber'(Sie finden die Tastennummern unter xev)

  • So bewegen Sie die Maus: xte 'mousemove xCoordinate yCoordinate'

  • Und mehr! Lesenman xte

Schlüsselnamen:

Hier ist eine Liste von Schlüsselnamen (außer den offensichtlichen):

Home
Left
Up
Right
Down
Page_Up
Page_Down
End
Return
BackSpace
Tab
Escape
Delete
Shift_L
Shift_R
Control_L
Control_R
Meta_L
Meta_R
Alt_L
Alt_R
Multi_key  
Super_L  
Super_R

Lesen:

Das könnte Sie auch interessieren:

Wie kann ich die Tasten auf meiner Tastatur ändern? (Wie kann ich benutzerdefinierte Tastaturbefehle / Tastenkürzel erstellen?)

Wie kann ich bestimmte Tasten oder Geräte neu zuordnen?

Seth
quelle
Das sieht gut aus, funktioniert aber nicht xbindkeys. Wenn von xte 'key a'dort aufgerufen wird, xbindkeysblinkt mein Cursor nur, wenn ich meinen Hotkey drücke. xte 'key a'in der befehlszeile funktioniert. gnome-terminalAb xbindkeysWerk gerufen. Ich bin nicht sicher, wo das Problem liegt.
Farzher
Es scheint wirklich nicht so, xteals würde versucht, das Schlüsselereignis an das fokussierte Fenster zu senden, wenn es von xbindkeys...
Farzher,
@StephenSarcsamKamenar Ich selbst hatte einige Probleme, aber aus meiner Erfahrung war das ein xbindkeysProblem. Für mich muss ich die Tastenkombination genau zur gleichen Zeit drücken xbindkeys, um den Befehl senden zu können. YMMV.
Seth
Möglicherweise ein xbindkeysProblem; xdotoolIch habe damit gearbeitet, aber wenn ich eine Taste gedrückt hielt, wurde sie nie wiederholt. Was sind gute Alternativen zu xbindkeys?
Farzher
1
@StephenSarcsamKamenar Xmodmap wird erklärt diese Antwort sowie diese ein. Das würde ich verwenden, wenn xbindkeysdie Vorform nicht gut genug wäre (was bei xte nicht der Fall ist. Zumindest bei mir.)
Seth