Come simulare l'input da tastiera?


15

Questa è la cosa più grande che mi impedisce di apprezzare Ubuntu / Linux.

Idealmente, vorrei solo poter eseguire il mio script AutoHotKey su Ubuntu, ma non ho avuto molta fortuna a farlo funzionare con Wine.

Ecco cosa sto facendo in AHK (funziona anche con i modificatori extra, Shift+ Alt+ lè Shift+ right).

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

Ho provato AutoKey, ma non consumava input, rimappando Alt+ Isul tasto freccia destra funzionava, ma eseguiva comunque Alt+ I, che a volte seleziona un elemento dal menu dell'applicazione.

Il più vicino che ho avuto è stato xbindkeysper impostare tasti di scelta rapida, questo sembra funzionare alla grande. E xvkbdper simulare input; questa parte è veramente buggy; non funziona in tutti i programmi e mi fa perdere molta attenzione, tra le altre cose.

Per chiunque si chieda cosa sto cercando di fare: uso I J K Li tasti freccia mentre Altè inattivo.


Ehi Stephen, sto cercando esattamente la stessa cosa. Sei riuscito a farlo?
lolmaus - Andrey Mikhaylov,

Risposte:


18

Non ho mai usato xvkbd, ma ci sono altri due fantastici programmi per simulare l'input da tastiera che mi piacciono e che uso. Uno è xtee l'altro è xdotool.

sudo apt-get install xautomation xdotool  

Entrambi xdotoole xtesono molto simili, ma dal momento che uso di xtepiù entrerò in quello.

xte:

La sintassi più semplice per xteè:

xte 'command key/mousebutton/xyCoordinates'

xte può fare molto di più che creare semplicemente input da tastiera, ma può anche spostare il mouse e simulare la pressione dei pulsanti del mouse, tra le altre cose.

Esempi di sintassi:

  • Per chiamare un singolo tasto premere: xte 'key keyName'

  • Per chiamare una combinazione di tasti: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName

  • Per chiamare un pulsante del mouse: xte 'mouseclick buttonNumber'(Puoi trovare i numeri dei pulsanti attraverso xev)

  • Per spostare il mouse: xte 'mousemove xCoordinate yCoordinate'

  • E altro! Leggereman xte

keynames:

Ecco un elenco di nomi chiave (diversi da quelli ovvi):

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

Lettura:

Potrebbe interessarti anche leggere:

Come posso cambiare i tasti della mia tastiera? (Come posso creare comandi / scorciatoie da tastiera personalizzate?)

Come rimappare determinati tasti o dispositivi?


Sembra buono ma non funziona xbindkeys. Quando xte 'key a'viene chiamato da xbindkeysquesto, il mio cursore lampeggia quando premo il tasto di scelta rapida. xte 'key a'nella riga di comando funziona. gnome-terminalchiamato da xbindkeysopere. Non sono sicuro di dove sia il problema.
Farzher,

Non sembra proprio che xtestia cercando di inviare l'evento chiave alla finestra focalizzata quando viene chiamato da xbindkeys...
Farzher

@StephenSarcsamKamenar Io stesso ho avuto qualche problema, ma dalla mia esperienza che è stato un xbindkeysproblema .. Per me devo premere la combinazione di tasti esattamente allo stesso tempo per xbindkeyspoter inviare il comando. YMMV.
Seth,

Forse un xbindkeysproblema; xdotoolfunzionava con esso, ma quando tenevo premuto un tasto, non lo ripetevo mai più. Quali sono le buone alternative a xbindkeys?
Farzher,

1
@StephenSarcsamKamenar Xmodmap è spiegato in questa risposta e in questa . Questo è quello che userei se xbindkeysnon si preformasse abbastanza bene (cosa che non con xte .. almeno per me.)
Seth
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.