Se você tiver um mouse com botões extras, poderá vinculá-los para executar uma combinação de teclas, executar um programa, comando ou script. Isso só funcionará se você usar o X11 (não funciona no Wayland) porque as ferramentas que usaremos para isso suportam apenas o X11.
Para vincular os botões do mouse às combinações de teclas, usaremos as seguintes ferramentas:
Caso você não precise vincular os botões do mouse às teclas do teclado, e tudo o que deseja vincular aos botões do mouse são programas, comandos ou scripts, você pode pular a instalação do xdotool.
sudo apt install xbindkeys x11-utils xdotool
sudo dnf install xbindkeys xorg-x11-utils xdotool
sudo zypper install xbindkeys xev xdotool
sudo pacman -S xbindkeys xorg-xev xdotool
Em outras distribuições do Linux, você terá que pesquisar nos repositórios por xdotool
, xev
e xbindkeys
e instalá-los.
Para obter o (s) código (s) do botão do mouse, execute este comando:
xev | grep button
Em seguida, focalize a pequena janela que aparece e observe a saída do terminal. Agora pressione o botão do mouse para o qual deseja obter o código. Após pressionar o botão você deverá ver seu código no terminal onde executou o xev, por exemplo:
$ xev | grep button
state 0x10, button 8, same_screen YES
Neste exemplo, o código do botão de que precisaremos mais tarde é 8
.
Pule essa etapa se você quiser vincular um comando/script/programa a um botão do mouse
Abra um terminal e execute este comando (via AskUbuntu):
xev | sed -ne '/^KeyPress/,/^$/p'
Mais uma vez, aparecerá uma pequena janela que você precisa focalizar. Em seguida, pressione as teclas do teclado que deseja remapear para o mouse, uma de cada vez, e observe a saída do comando xev no terminal.
Por exemplo, se você deseja vincular Ctrl + Alt + Up
a um botão do mouse, pressione Ctrl
, depois Alt
e finalmente Up
. No meu caso, esta é a saída de xev
para essas três teclas pressionadas (a primeira é para Control_L
ou a tecla Control esquerda, a o segundo para Alt_L
ou Alt esquerdo, e o terceiro é para Up
:
KeyPress event, serial 33, synthetic NO, window 0x2200001,
root 0x1eb, subw 0x0, time 6741696, (46,-37), root:(728,598),
state 0x10, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 36, synthetic NO, window 0x2200001,
root 0x1eb, subw 0x0, time 6743289, (46,-37), root:(728,598),
state 0x10, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 36, synthetic NO, window 0x2200001,
root 0x1eb, subw 0x0, time 6744780, (46,-37), root:(728,598),
state 0x10, keycode 111 (keysym 0xff52, Up), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
Anote o código da tecla, keysim ou nome da tecla. Você pode usar qualquer um dos 3, por exemplo, para a primeira chave acima, você pode usar 37
, 0xffe3
ou Control_L
. Neste artigo, usarei o nome da chave (por exemplo, Control_L
para a tecla de controle esquerda), pois são mais fáceis de ler.
É importante notar que xbindkeys pode ser usado para capturar os códigos de tecla também (xbindkeys -k
), mas ele lê todas as chaves ativas, então pode ser confuso em alguns casos, por exemplo, se você tem Caps_Lock
ou Num_Lock
ligado, etc., então eu pessoalmente prefiro usar o xev para esta tarefa.
Nem xed
nem xbindkeys -k
mostrarão os códigos de tecla/símbolos do teclado para teclas de multimídia. No caso de desejar remapear teclas multimídia para botões do mouse, você pode obter uma lista de tais símbolos de teclado visitando este link.
Artigo relacionado a mouse: Como desativar a aceleração do mouse no Ubuntu 20.10, 20.04, 19.10 ou 18.04 (Gnome).
~/.xbindkeysrc
)Você pode criar um arquivo ~/.xbindkeysrc
vazio ou gerar um arquivo de configuração de amostra usando este comando:
xbindkeys -d > ~/.xbindkeysrc
Em seguida, abra ~/.xbindkeysrc
com seu editor de texto favorito. Observe que .xbindkeysrc
é um arquivo oculto em seu diretório inicial, então você precisará pressionar Ctrl + h
(para mostrar arquivos e pastas ocultos) para vê-lo em seu gerenciador de arquivos.
Para vincular um botão do mouse a uma combinação de teclas, cole o seguinte no final do arquivo ~/.xbindkeysrc
(pode já conter algumas combinações de teclas, pode conter a configuração de amostra ou pode estar vazio - não importa ):
"xdotool key 'KEY-COMBINATION'"
b:MOUSE-BUTTON-CODE
Onde:
KEY-COMBINATION
são os pressionamentos de tecla que você obteve na etapa 3 (separe as teclas com um sinal +
)MOUSE-BUTTON-CODE
é o código do botão do mouse que você obteve na etapa 2Exemplo:
"xdotool key 'Control_L+Alt_L+Down'"
b:8
Isso remapeia o botão 8 do mouse (que para o meu mouse é o botão que pode ser usado como um botão de voltar em um navegador da web, por exemplo) para Control_L+Alt_L+Down
que no GNOME Shell é usado para alternar para a área de trabalho para baixo.
Para também remapear o botão de avanço do mouse (botão 9 do mouse no meu caso) para Control_L+Alt_L+Up
(alternar para a área de trabalho no GNOME Shell), eu teria que adicionar isso ao arquivo ~/.xbindkeysrc
:
"xdotool key 'Control_L+Alt_L+Up'"
b:9
Outro exemplo. Para vincular as teclas de mídia do teclado para aumentar e diminuir o volume aos botões 8 e 9 do mouse:
"xdotool key 'XF86AudioRaiseVolume'"
b:9
"xdotool key 'XF86AudioLowerVolume'"
b:8
Da mesma forma, adicione quantas combinações de teclas desejar, mas certifique-se de não usar algumas combinações de teclas já existentes.
Para vincular um comando, script ou programa a um botão do mouse, use isto no arquivo ~/.xbindkeysrc
:
"COMMAND"
b:MOUSE-BUTTON-CODE
Aqui:
COMMAND
é um comando, script ou programaMOUSE-BUTTON-CODE
é o código do botão do mouse obtido na etapa 2Você também pode gostar de: Executar ou aumentar o aplicativo do Windows no Linux (X11) usando um único atalho de teclado com jumpapp.
Exemplo para executar um programa usando um botão do mouse:
"firefox"
b:8
Isso inicia o Firefox ao pressionar o botão 9 do mouse (que para o meu mouse é o botão que pode ser usado como um botão de voltar em um navegador da web, por exemplo).
Agora você pode iniciar o xbindkeys usando um terminal e digitando:
xbindkeys
No caso de xbindkeys estar em execução, você pode fazer com que ele use a nova configuração emitindo:
xbindkeys --poll-rc
Este comando falhou em alguns casos para mim quando mudei a configuração xbindkeys, não tenho certeza do porquê. Nesse caso, você pode reiniciá-lo eliminando o processo xbindkeys e executando-o novamente:
killall xbindkeys
xbindkeys
No Ubuntu, o xbindkeys é iniciado automaticamente na inicialização do sistema se encontrar um arquivo de configuração ~/.xbindkeysrc
não vazio (ele precisa ter linhas sem comentários). Se a ferramenta não iniciar automaticamente para a distribuição Linux que você está usando, adicione xbindkeys
aos seus programas de inicialização.
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
How To Bind Mouse Buttons To Keyboard Keys Or Commands (Linux Using X11)