xbindkeys ..
sudo apt-get install xbindkeys
O Xbindkeys é um programa muito versátil que permite remapear as teclas com muita facilidade. Ele usa um arquivo de configuração, meu padrão localizado em seu diretório inicial, para alterar as combinações de teclas em determinados comandos.
Para criar um arquivo de configuração padrão, use o comando:
xbindkeys --defaults
Que imprime o arquivo de configuração padrão. Então, se você quiser criar o arquivo contendo os valores padrão que você usaria:
xbindkeys --defaults > $HOME/.xbindkeysrc
Que imprime os valores padrão em um arquivo oculto chamado .xbindkeysrc
localizado em home ( ~
).
Agora, para realmente alterar as ligações de chaves, primeiro precisamos saber qual é o nome ou o keysym dessas chaves. xbindkeys
nos permite usar o identificador -k
para encontrar o nome de uma chave ou combinação de teclas. Executar:
xbindkeys -k
E pressione uma tecla ou combinação de teclas. Sua saída irá parecer algo similar a esta (quando pressionar espaço ):
"NoCommand"
m:0x10 + c:65
Mod2 + space
"No Command"
nos informa que atualmente nenhum comando está associado à tecla Espaço .
m:0x10 + c:65
Mod2 + space
É o nome da combinação de teclas / chaves.
o arquivo de configuração ..
Vamos abrir o arquivo de configuração que você criou anteriormente:
gedit .xbindkeysrc
Aqui está um trecho do arquivo de configuração padrão:
#
# A list of keys is in /usr/include/X11/keysym.h and in
# /usr/include/X11/keysymdef.h
# The XK_ is not needed.
#
# List of modifier:
# Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock),
# Mod3 (CapsLock), Mod4, Mod5 (Scroll).
#
# The release modifier is not a standard X modifier, but you can
# use it if you want to catch release events instead of press events
# By defaults, xbindkeys does not pay attention with the modifiers
# NumLock, CapsLock and ScrollLock.
# Uncomment the lines above if you want to pay attention to them.
#keystate_numlock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable
# Examples of commands:
"xbindkeys_show"
control+shift + q
Cada linha que começa com #
é um comentário e não será lida ou executada por xbindkeys
.
Até agora, a única linha que não está comentada é:
"xbindkeys_show"
control+shift + q
Este trecho mostra a sintaxe básica dos comandos xbindkeys
:
"Command to run (in quotes)"
key to associate with command (no quotes)
Então, como você pode ver:
"xbindkeys_show"
control+shift + q
Executa o comando xbindkeys_show
quando você pressiona Ctrl + Desloca + q .
vincular chaves a comandos ..
Agora vamos tentar ligar algumas teclas. Eu recomendo limpar todo o arquivo padrão para que fique em branco. Ele contém ligações de teclas predefinidas que você provavelmente não deseja.
Agora vamos dizer que você quer usar Ctrl + b para abrir seu navegador. Primeiro você precisa saber o que é o nome ou keysym de Ctrl + b . Como mencionado anteriormente, você pode usar xbindkeys -k
para encontrar o nome de uma chave ou chaves, mas existe uma maneira mais fácil. Para combinações simples como Ctrl + b você pode usar:
Control+b
Muito mais fácil, não é?
Agora encontre o comando do seu navegador favorito:
-
Para o Firefox:
firefox
-
Para o Chromium:
chromium-browser
-
Para o Opera:
opera
Lembre-se da sintaxe anterior? O comando xbindkeys
para iniciar o Firefox (ou seu outro navegador favorito) quando você pressionar Ctrl + b é:
"firefox"
Control+b
Agora coloque isso no seu arquivo de configuração e salve-o. Agora você pode notar que seu comando ainda não funciona, porque xbindkeys
não está em execução. Para iniciá-lo, basta executar xbindkeys
de um terminal. Sua Ctrl + b deve iniciar seu navegador agora!
vincular chaves a outras chaves.
Se você quiser que uma tecla em seu teclado chame uma tecla diferente em seu teclado, você precisará de um software extra, pois xbindkeys
não suporta isso por conta própria. Eu sei de dois programas que podemos usar, xdotool
e xte
. Eu prefiro xte
, então vou usar isso.
Instale:
sudo apt-get install xautomation
A sintaxe de xte
é assim:
xte 'command key/mousebutton/xyCoordinates'
Exemplos:
-
Para chamar uma única tecla, pressione:
xte 'key keyName'
-
Para chamar uma combinação de teclas:
xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName
-
Para chamar um botão do mouse:
xte 'mouseclick buttonNumber'
(Discutiremos a localização dos números dos botões um pouco mais tarde) -
Para mover o mouse:
xte 'mousemove xCoordinate yCoordinate'
-
E mais! Leia
man xte
Agora que você conhece o comando para simular pressionamentos de teclas, é possível chamá-lo de seu script xbindkeys
, assim:
"xte 'key b'"
Control+b
Como você pode imaginar, isso chama xte 'key b'
quando pressionamos Ctrl + b , que deve entrar um b em qualquer documento que você pode estar atualmente trabalhando.
No entanto, é importante notar que xbindkeys
e xte
nem sempre funcionam muito bem juntos. Às vezes você precisa pressionar as teclas exatamente ao mesmo tempo para obter a saída, outras vezes funciona bem. Isso pode ou não ter a ver com configuração do sistema e / ou hardware. Não tenho certeza. Veja a resposta do maggotbrain para uma maneira mais confiável de ligar chaves a outras chaves.
liga botões do mouse aos comandos ..
Você também pode usar xbindkeys
para ligar os botões do mouse aos comandos (e daí os atalhos do teclado, veja acima). O formato básico dos botões do mouse deve ser familiar para você agora:
" [command to run] "
b:n
Onde [command to run]
é o comando que você deseja executar e n
o número do botão do mouse que você deseja usar para esse comando.
Se você não souber o número do botão do mouse, use xev
para descobrir o que é:
xev | grep button
A saída será algo assim:
user@host:~$ xev | grep button
state 0x10, button 1, same_screen YES
state 0x110, button 1, same_screen YES
state 0x10, button 2, same_screen YES
state 0x210, button 2, same_screen YES
state 0x10, button 3, same_screen YES
state 0x410, button 3, same_screen YES
Quando eu pressiono cada um dos botões do meu mouse.
Por exemplo:
" firefox "
b:2
Inicia o Firefox quando pressiono o botão do meio do mouse.