Comment configurer les macros de clavier?

20

Dans ma vie quotidienne, je tape toujours <kbd>Keyboard Character</kbd>et j'aimerais mettre en place une macro dans Ubuntu pour entrer automatiquement <kbd> </kbd>.

Je voudrais l'attribuer pour dire Shift+ Control+ Kou quelle que soit la combinaison de caractères de contrôle du clavier non affectée et déjà utilisée par Ubuntu.

À l'époque des programmes MS-DOS TSR (Terminate and Stay Resident), cela était possible. Certes, il doit aussi être dans Ubuntu?

Dois-je écrire un démon pour accomplir cela?


J'ai trouvé d'autres questions sans réponse: comment puis-je attribuer des macros à mes touches de clavier sur Ubuntu, similaires aux macros de clavier Razer sous Windows? , qu'est-ce qu'un bon enregistreur de macros souris / clavier?

J'ai trouvé une question similaire avec une réponse: Puis-je utiliser des raccourcis clavier pour implémenter des macros de texte? . Cependant, cette question stipulait que la réponse ne pouvait pas l'être AutoKey.

WinEunuuchs2Unix
la source
Points pour avoir fait monter le TSR :-)
drudru

Réponses:

17

J'ai fait quelques recherches sur Google et j'ai trouvé un programme appelé AutoKey ( Autokey - utilitaire Linux pour les raccourcis clavier de substitution de texte ) en haut de la liste.

Plutôt qu'un raccourci clavier utilisant Ctrl+ Shift+, Kj'ai choisi d'attribuer l'abréviation kzqui est automatiquement développée en <kbd></kbd>+.

Il s'installe simplement en utilisant:

sudo apt install autokey-gtk

Il s'installe dans Launcher et l'écran est assez simple à utiliser:

Autokey

WinEunuuchs2Unix
la source
14

Ce qui peut aussi être fait est d'utiliser xdotoolavec typeflag, comme ceci:

bash -c ' sleep 0.5; xdotool getactivewindow  type "<kbd></kbd>"'

Accédez à Paramètres système-> Clavier-> Raccourcis -> Personnalisé et liez cette commande au raccourci clavier que vous souhaitez. J'ai choisi CtrlSuperK. Ce qui se passe ici, c'est que nous accordons à l'utilisateur un délai de 0,5 seconde pour libérer le raccourci clavier, puis xdotooltapons les balises de balisage des touches comme si vous le faisiez vous-même au clavier. Approche très facile et simple. En fait, je l'ai utilisé tout à l'heure pour mettre ces 3 touches ci-dessus.

Notez que xdotoolcela ne vient pas avec Ubuntu par défaut, vous devrez donc l'installer viasudo apt-get install xdotool

Sergiy Kolodyazhnyy
la source
Pouvez-vous également faire revenir le pointeur d'insertion pour qu'il soit entre <kbd>et </kbd>?
DK Bose, du
4
J'utilise bash -c 'sleep 0.5; xdotool getactivewindow type "[CODE][/CODE]" && sleep 0.5 && xdotool key Left Left Left Left Left Left Left'pour obtenir le curseur de texte entre les balises de code.
DK Bose, du
1

Si vous avez un fichier de composition , vous pouvez l'utiliser comme un utilitaire d'insertion de texte pour les pauvres.

Vous pouvez utiliser quelques-uns des modificateurs de X. Apparemment, vous pouvez utiliser Shiftcomme modificateur:

! Ctrl Shift <k> : "<kbd></kbd>"

Mais cela ne fonctionne pas, du moins sur ma machine.

Ce travail non plus (omis Shift, capitalisé K):

! Ctrl <K> : "<kbd></kbd>"

Cependant, vous pouvez utiliser Ctrlet Ctrl+ Alt:

! Ctrl Alt <k> : "<kbd></kbd>"
! Ctrl <k> : "<kbd></kbd>"

Positionner correctement le curseur

Les mappages ci-dessus placeront le curseur après la chaîne ( |indique le curseur):

<kbd></kbd>|

Je pense qu'il ne peut y avoir de solution générale pour placer le curseur à l'intérieur de la balise; pour cela, vous devez utiliser un outil adapté. Mais vous pouvez faire passer le curseur à l'intérieur de la balise dans certaines applications.

J'utilise gnome-terminalavec Bash qui utilise des raccourcis clavier readline (comme Emacs). Ctrl-best le raccourci clavier pour revenir en arrière d'un caractère. Dans mon terminal, je peux taper Ctrl+v bet obtenir le caractère de contrôle ^B(U + 0002 (début du texte)). Tapez donc six de ces caractères à la fin de la chaîne:

! Ctrl Alt <k> : "<kbd></kbd>^B^B^B^B^B^B"

Le curseur sera placé à l'intérieur de la balise si vous êtes à l'intérieur d'une application qui interprète ^Bcorrectement (par exemple les terminaux et Emacs):

<kbd>|</kbd>

Utilisation de la touche de composition

Vous pouvez bien sûr utiliser la touche de composition ( <Multi_key>) pour réaliser la même chose. Par exemple, utilisez t(«tag») et k(«keyboard»):

<Multi_key> <t> <k> : "<kbd></kbd>^B^B^B^B^B^B"
Guildenstern
la source