Comment simuler la saisie au clavier?


15

C'est la plus grande chose qui m'empêche d'apprécier Ubuntu / Linux.

Idéalement, j'aimerais simplement pouvoir exécuter mon script AutoHotKey sur Ubuntu, mais je n'ai pas eu beaucoup de chance pour que cela fonctionne avec Wine.

Voici ce que je fais dans AHK (l'utilisation de modificateurs supplémentaires fonctionne également, Shift+ Alt+ lest Shift+ right).

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

J'ai essayé AutoKey, mais cela ne consommait pas d'entrée, le remappage de Alt+ Ivers la touche flèche droite fonctionnait, mais il exécutait toujours Alt+ I, qui sélectionne parfois un élément dans le menu de l'application.

Le plus proche que j'ai obtenu était xbindkeyspour la mise en place de raccourcis clavier, cela semble très bien fonctionner. Et xvkbdpour simuler l'entrée; cette partie est vraiment buggée; cela ne fonctionne pas dans tous les programmes et me fait perdre beaucoup de concentration, entre autres.

Pour tous ceux qui se demandent ce que j'essaie de faire: j'utilise I J K Lcomme touches fléchées lorsque Altest en bas.


Hey Stephen, je cherche exactement la même chose. Avez-vous réussi à le faire?
lolmaus - Andrey Mikhaylov

Réponses:


18

Je n'ai jamais utilisé xvkbd, mais il existe deux autres excellents programmes pour simuler la saisie au clavier que j'aime et que j'utilise. L'un est xteet l'autre l'est xdotool.

sudo apt-get install xautomation xdotool  

Les deux xdotoolet xtesont très similaires, mais comme j'en utilise xtele plus, je vais y aller.

xte:

La syntaxe la plus basique pour xteest:

xte 'command key/mousebutton/xyCoordinates'

xte peut faire bien plus que simplement créer une entrée au clavier, il peut également déplacer votre souris et simuler des pressions sur les boutons de la souris, entre autres.

Exemples de syntaxe:

  • Pour appeler une seule touche, appuyez sur: xte 'key keyName'

  • Pour appeler une combinaison de touches: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName

  • Pour appeler un bouton de la souris: xte 'mouseclick buttonNumber'(Vous pouvez trouver les numéros des boutons via xev)

  • Pour déplacer la souris: xte 'mousemove xCoordinate yCoordinate'

  • Et plus! Lisman xte

Noms clés:

Voici une liste de noms clés (autres que les noms évidents):

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

En train de lire:

Vous pourriez également être intéressé par la lecture:

Comment puis-je changer les touches de mon clavier? (Comment puis-je créer des commandes / raccourcis clavier personnalisés?)

Comment remapper certaines clés ou certains appareils?


Ça a l'air bien mais ça ne marche pas xbindkeys. Quand xte 'key a'est appelé, xbindkeyscela fait juste clignoter mon curseur lorsque j'appuie sur mon raccourci clavier. xte 'key a'dans la ligne de commande fonctionne. gnome-terminalappelé des xbindkeystravaux. Je ne sais pas où est le problème.
Farzher

Il ne semble vraiment pas xtevouloir envoyer l'événement clé à la fenêtre focalisée lorsqu'il est appelé depuis xbindkeys...
Farzher

@StephenSarcsamKamenar J'ai moi-même eu des problèmes, mais d'après mon expérience, cela a été un xbindkeysproblème .. Pour moi, je dois appuyer sur la combinaison de touches exactement en même temps pour pouvoir xbindkeysenvoyer la commande. YMMV.
Seth

Peut-être un xbindkeysproblème; xdotooltravaillé avec, mais quand je maintenais une touche, elle ne la répéterait jamais. Quelles sont les bonnes alternatives à xbindkeys?
Farzher

1
@StephenSarcsamKamenar Xmodmap est expliqué dans cette réponse ainsi que celle- ci. C'est ce que j'utiliserais si je xbindkeysn'effectuais pas assez bien la préforme (ce qui n'est pas le cas avec xte .. au moins pour moi.)
Seth
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.