Jak symulować wprowadzanie danych z klawiatury?

15

To jest największa rzecz, która powstrzymuje mnie przed korzystaniem z Ubuntu / Linux.

Idealnie chciałbym móc po prostu uruchomić mój skrypt AutoHotKey na Ubuntu, ale nie miałem dużo szczęścia w pracy z Wine.

Oto, co robię w AHK (działa również użycie dodatkowych modyfikatorów, Shift+ Alt+ lto Shift+ right).

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

Próbowałem AutoKey, ale nie pobierało danych wejściowych, mapowanie Alt+ Ido klawisza strzałki w prawo działało, ale nadal wykonywało Alt+ I, co czasem wybiera element z menu aplikacji.

Najbliższe mi było xbindkeysustawienie skrótów klawiszowych, wydaje się, że działa świetnie. I xvkbddo symulacji danych wejściowych; ta część jest naprawdę wadliwa; nie działa we wszystkich programach i powoduje, że tracę koncentrację, między innymi.

Dla każdego, kto zastanawia się, co próbuję zrobić: używam I J K Ljako klawiszy strzałek, gdy nie Altdziała.

Farzher
źródło
Hej Stephen, szukam dokładnie tego samego. Czy udało ci się to zrobić?
Lolmaus - Andrey Mikhaylov

Odpowiedzi:

18

Nigdy nie korzystałem z xvkbd, ale są dwa inne świetne programy do symulacji wprowadzania z klawiatury, które lubię i których używam. Jeden jest, xtea drugi jest xdotool.

sudo apt-get install xautomation xdotool  

Zarówno xdotooli xtesą bardzo podobne, ale ponieważ używam xtenajbardziej Pójdę do tego.

xte:

Najbardziej podstawową składnią xtejest:

xte 'command key/mousebutton/xyCoordinates'

xte potrafi zrobić znacznie więcej niż tylko wprowadzanie danych z klawiatury, może także poruszać myszą i symulować naciskanie przycisków myszy.

Przykłady składni:

  • Aby połączyć się z jednym klawiszem, naciśnij: xte 'key keyName'

  • Aby wywołać kombinację klawiszy: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName

  • Aby wywołać przycisk myszy: xte 'mouseclick buttonNumber'(Numery przycisków można znaleźć przez xev)

  • Aby przesunąć mysz: xte 'mousemove xCoordinate yCoordinate'

  • I więcej! Czytaćman xte

Keynames:

Oto lista kluczowych nazw (innych niż oczywiste):

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

Czytanie:

Może Cię również zainteresować lektura:

Jak mogę zmienić klawisze na klawiaturze? (Jak mogę utworzyć niestandardowe polecenia / skróty klawiaturowe?)

Jak zmienić mapowanie niektórych kluczy lub urządzeń?

Seth
źródło
Wygląda dobrze, ale nie działa xbindkeys. Kiedy xte 'key a'jest wywoływany z xbindkeystego, powoduje, że mój kursor miga po naciśnięciu skrótu. xte 'key a'w wierszu poleceń działa. gnome-terminalwywoływany z xbindkeysutworów. Nie jestem pewien, gdzie jest problem.
Farzher
Naprawdę nie wygląda na xteto, żeby próbować wysłać kluczowe wydarzenie do skoncentrowanego okna, gdy zostanie wywołane z xbindkeys...
Farzher
@StephenSarcsamKamenar Ja sam miałem pewne problemy, ale z mojego doświadczenia, że ​​był xbindkeysproblem. Dla mnie muszę nacisnąć kombinację klawiszy dokładnie w tym samym czasie, xbindkeysaby wysłać polecenie. YMMV.
Seth
Może xbindkeysproblem; xdotoolpracowałem z nim, ale kiedy przytrzymałem klawisz, nigdy się nie powtórzy. Jakie są dobre alternatywy xbindkeys?
Farzher
1
@StephenSarcsamKamenar Xmodmap jest wyjaśniony w tej odpowiedzi, a także w tej . Tego właśnie użyłbym, gdyby xbindkeysnie wykonał wystarczająco dobrze (co nie działa z Xte .. przynajmniej dla mnie.)
Seth