Como configuro macros do teclado?

20

Na minha vida diária, estou sempre digitando <kbd>Keyboard Character</kbd>e gostaria de configurar uma macro no Ubuntu para entrar automaticamente <kbd> </kbd>.

Eu gostaria de atribuí-lo para dizer Shift+ Control+ Kou qualquer combinação de caracteres de controle do teclado não atribuída e já usada pelo Ubuntu.

No dia dos programas TSR (Terminate and Stay Resident) do MS-DOS, isso era possível. Certamente também deve estar no Ubuntu?

Preciso escrever um daemon para fazer isso?


Encontrei outras perguntas sem respostas: Como posso atribuir macros às teclas do meu teclado no Ubuntu, semelhantes às Razer Keyboard Macros no Windows? , o que é um bom gravador de macro para mouse / teclado?

Encontrei uma pergunta semelhante com uma resposta: Posso usar atalhos de teclado para implementar macros de texto? . No entanto, essa pergunta estipulou que a resposta não poderia ser AutoKey.

WinEunuuchs2Unix
fonte
Pontos por trazer o TSR :-)
drudru 18/01

Respostas:

17

Eu pesquisei no Google e encontrei um programa chamado AutoKey ( Autokey - utilitário Linux para teclas de atalho de substituição de texto ) próximo ao topo da lista.

Em vez de uma tecla de atalho usando Ctrl+ Shift+ K, escolhi atribuir a abreviação na kzqual ela é automaticamente expandida <kbd></kbd>+.

É simplesmente instalado usando:

sudo apt install autokey-gtk

Ele é instalado no Launcher e a tela é bastante simples de usar:

Autokey

WinEunuuchs2Unix
fonte
14

O que também pode ser feito é usar xdotoolcom typeflag, assim:

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

Vá para Configurações do sistema-> Teclado-> Atalhos -> Personalizado e vincule esse comando ao atalho de teclado desejado. Eu escolhi CtrlSuperK. O que acontece aqui é que damos um atraso de 0,5 segundos ao usuário para liberar o atalho do teclado e xdotooldigitaremos as tags de marcação de teclas como se você estivesse fazendo isso sozinho no teclado. Abordagem muito fácil e simples. Na verdade, eu estou usando agora para colocar as 3 chaves acima.

Observe que xdotoolnão vem com o Ubuntu por padrão, então você terá que instalá-lo viasudo apt-get install xdotool

Sergiy Kolodyazhnyy
fonte
Você também pode fazer o ponteiro de inserção voltar para que fique entre <kbd>e </kbd>?
Justice for Monica
4
Estou usando bash -c 'sleep 0.5; xdotool getactivewindow type "[CODE][/CODE]" && sleep 0.5 && xdotool key Left Left Left Left Left Left Left'para obter o cursor de texto entre as tags de código.
Justice for Monica
1

Se você tiver um arquivo de composição, poderá usá-lo como um utilitário de inserção de texto de pobre.

Você pode usar alguns dos modificadores no X. Aparentemente, você pode usar Shiftcomo um modificador:

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

Mas isso não funciona, pelo menos na minha máquina.

Nem este trabalho (omitido Shift, maiúsculo K):

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

No entanto, você pode usar Ctrle Ctrl+ Alt:

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

Posicionando o cursor corretamente

Os mapeamentos acima colocarão o cursor após a string ( |indica o cursor):

<kbd></kbd>|

Acho que não pode haver uma solução de uso geral para colocar o cursor dentro da tag; para isso, você precisaria usar uma ferramenta adequada à finalidade. Mas você pode passar o cursor dentro da tag em determinadas aplicações.

Eu uso gnome-terminalcom o Bash, que usa combinações de teclas readline (semelhantes ao Emacs). Ctrl-bé a combinação de teclas para retroceder um caractere. No meu terminal, posso digitar Ctrl+v be obter o caractere de controle ^B(U + 0002 (Início do texto)). Portanto, digite seis desses caracteres no final da string:

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

O cursor será colocado dentro da tag se você estiver dentro de um aplicativo que interpreta ^Bcorretamente (por exemplo, terminais e Emacs):

<kbd>|</kbd>

Usando a tecla de composição

Obviamente, você pode usar a tecla de composição ( <Multi_key>) para obter a mesma coisa. Por exemplo, use t("tag") e k("teclado"):

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