Skip to content

Tudo para WordPress, desenvolvimento web — e não só

🖱 Como remapear os botões do rato com o AutoHotkey e acelerar o seu fluxo de trabalho

🖱 Como remapear os botões do rato com o AutoHotkey e acelerar o seu fluxo de trabalho

Compraste um rato com botões extra, mas só usas o esquerdo, o direito e a roda de deslocamento. Os botões sob o polegar ficam parados, embora pudessem fechar separadores, alternar entre eles, duplicar cliques e abrir as ferramentas de programador. Mês após mês, estendes a mão para o teclado em busca de atalhos que o rato poderia tratar sozinho.

O problema não é um rato «errado». O problema é que o software de origem do fabricante ou não consegue associar ações complexas a um botão ou falha quando a janela ativa muda. A solução é enviar sinais «vazios» a partir dos botões e intercetá-los com um script que entende o contexto da aplicação.

💡 Visão geral rápida:

  • Atribui teclas virtuais F13 a F24 aos botões extra do rato através do driver: não fazem nada no sistema, mas o script «ouve-as»
  • Instala o AutoHotkey e escreve um script: cada aplicação recebe o seu próprio conjunto de ações, desde fechar um separador até manter premida a tecla Alt no Photoshop
  • Usa o Window Spy para ligar a qualquer ficheiro exe: o método funciona em navegadores, editores de código, leitores de vídeo, em qualquer lado

O que é o AutoHotkey e porque é que o teu rato precisa dele

O AutoHotkey (AHK) é uma linguagem de automação gratuita e de código aberto para Windows. Consegue intercetar pressões de teclas e cliques de botões do rato, enviar combinações arbitrárias para a janela ativa e distinguir aplicações pelo nome do executável. Esta última característica torna-o a camada ideal entre o hardware «burro» e o software: o mesmo botão do rato faz coisas diferentes no Chrome, no Photoshop e no ambiente de trabalho.

No momento em que escrevo, a versão atual é a AHK v2.0, que é mais rápida, mais rigorosa na sintaxe e removeu comandos obsoletos como o #NoEnv. Os scripts abaixo foram escritos para a v2, mas a lógica também se transfere para a v1 (que ainda é suportada por razões de compatibilidade).

Uma alternativa sem scripts é o XMBC (X-Mouse Button Control), um utilitário com interface gráfica. Também distingue aplicações, suporta até 10 camadas por perfil e não requer código nenhum. A desvantagem: portabilidade zero entre computadores e as capacidades estão limitadas ao que o programador incorporou. O AHK é mais flexível e o script pode ser copiado juntamente com o resto das definições do teu sistema.

Passo 1: associar botões a teclas virtuais F13 a F24

As teclas de função normais (F1 a F12) estão ocupadas; fazem algo em todas as aplicações. Mas o Windows também conhece as F13 a F24, códigos de leitura reais que nenhum programa interceta por predefinição. São ideais como «falsas»: o driver do rato envia F15 para o sistema, o sistema não a transmite a ninguém exceto ao nosso script AHK.

Associação através do driver do rato

Abre o software proprietário do teu rato: Logitech G Hub, Razer Synapse, SteelSeries Engine ou uma ferramenta universal. Encontra o separador de atribuição de botões e, para cada botão extra, escolhe «Atribuir tecla» ou «Atribuição de tecla». Introduz F13, F14, F15…, uma para cada botão. Não te preocupes por as teclas F13 a F24 não existirem fisicamente no teclado: o driver enviará o código de leitura e o Windows aceitá-lo-á.

Como «premir» F15 se essa tecla não existe? Guarda este excerto de AHK num ficheiro chamado send.ahk e executa-o:

1; send.ahk — emulates pressing F15 after 5 seconds
2Sleep 5000
3Send "{F15}"
4ExitApp

Executa-o, muda rapidamente para a janela do driver do rato, clica no campo «Atribuir tecla» e, após 5 segundos, o AHK enviará F15 e o driver registá-la-á. Repete para cada botão, alterando o número da tecla F.

Janela de atribuição de teclas no driver do rato com seleção de teclas de função

Passo 2: instalar o AutoHotkey e criar um script básico

Transfere o AHK do site oficial (escolhe a versão v2.0). Após a instalação, cria um ficheiro de texto com a extensão .ahk, por exemplo mouse.ahk. Cabeçalho básico do script:

1; mouse.ahk — basic AHK v2 setup
2#Requires AutoHotkey v2.0
3SendMode "Input"
4SetWorkingDir A_ScriptDir
5SetTitleMatchMode 2
6#MaxHotkeysPerInterval 300
7#InstallMouseHook

Explicação: SendMode "Input" é o método mais rápido e fiável para enviar teclas premidas; SetTitleMatchMode 2 procura uma substring no título da janela (basta parte do nome); #InstallMouseHook ativa a interceção de botões do rato a baixo nível.

Arranque automático no início do Windows

Pressiona Win+R, escreve shell:startup e a pasta de arranque será aberta. Mantém premido Alt e arrasta mouse.ahk para esta pasta: será criado um atalho. O script será iniciado com o sistema. É conveniente editar ficheiros .ahk no Sublime Text ou no Notepad++, ambos realçam a sintaxe AHK.

Passo 3: escrever um script para o navegador

O navegador é um campo de testes para os botões do rato. Aqui está uma configuração que cobre as principais ações de navegação:

1; Chrome / any Chromium-based browser
2#HotIf WinActive("ahk_exe chrome.exe") or WinActive("ahk_exe msedge.exe")
3 ; Ctrl+W = close tab
4 F14::Send "^w"
5 ; Ctrl+Shift+C = developer tools (inspect element)
6 F22::Send "^+c"
7 ; Ctrl+PageDown = next tab
8 F16::Send "^{PgDn}"
9 ; Ctrl+PageUp = previous tab
10 F17::Send "^{PgUp}"
11 ; Alt+Left = back in history
12 F18::Send "!{Left}"
13 ; F5 = reload tab
14 F20::Send "{F5}"
15 ; Ctrl+Shift+T = restore closed tab
16 F23::Send "^+t"
17#HotIf

Copia o bloco para mouse.ahk, substituindo os números das teclas F pelos que atribuíste no driver. Depois de guardar o ficheiro, pressiona Ctrl+R (Recarregar script) no menu da bandeja do AHK; as novas associações funcionarão instantaneamente sem reiniciar o navegador.

#HotIf limita o âmbito do bloco; os botões só funcionam quando o Chrome ou o Edge estão em foco. Muda para o Explorador de Ficheiros e essas mesmas F14 a F23 podem fazer outra coisa ou absolutamente nada.

Passo 4: script para o Photoshop e um tablet gráfico

Um exemplo mais complexo: o Photoshop, onde os botões não se limitam a enviar uma combinação, mas mantêm premida uma tecla modificadora. Isto é inestimável ao trabalhar com uma caneta Wacom; os botões na caneta ativam o seletor de cor e o arrastar da tela:

Janela de definições dos botões da caneta Wacom com atribuições de teclas de função
1; Adobe Photoshop
2#HotIf WinActive("ahk_exe photoshop.exe")
3 ; Hold Alt = color picker (while button is pressed)
4 F14::
5 {
6 if !GetKeyState("Alt")
7 Send "{Alt down}"
8 }
9 F14 Up::Send "{Alt up}"
10
11 ; Alt+Ctrl+Z = step backward (instead of simple Undo)
12 F16::Send "!^z"
13
14 ; Shift+Ctrl+Z = step forward
15 F17::Send "+^z"
16
17 ; Hold Space = canvas dragging
18 F18::
19 {
20 if !GetKeyState("Space")
21 Send "{Space down}{Click down}"
22 }
23 F18 Up::Send "{Space up}{Click up}"
24
25 ; Ctrl+S = save
26 F19::Send "^s"
27
28 ; Ctrl+N = new document
29 F20::Send "^n"
30
31 ; Alt+Shift+Ctrl+S = Export → Save for Web
32 F23::Send "!+^s"
33#HotIf

Note a construção F14:: com chavetas; trata-se de uma hotkey de várias linhas. O GetKeyState("Alt") protege contra a retenção repetida do modificador caso o botão trema. O F14 Up:: dispara ao soltar e repõe o Alt no estado original.

A mesma abordagem aplica-se a qualquer software que precise de modificadores: Figma (Espaço para a mão de arrasto), Blender (Shift para movimento preciso), DaVinci Resolve (Alt para copiar um clipe).

Passo 5: ações globais predefinidas

Quando nenhuma das aplicações está em foco, os botões fazem algo universal:

1; Global bindings (work everywhere without a specific #HotIf)
2F14::Send "{Backspace}" ; back (like a browser button)
3F15::Send "{Click 2}" ; double click
4F19::Send "{MButton}" ; middle button (easier than clicking the wheel)
5F21::Send "#d" ; Win+D = minimize all windows (boss key)

O duplo clique com um só botão é um dos favoritos do autor do método original. Após uma semana de uso, um duplo clique físico parece desconcertante: porquê bater duas vezes quando se pode bater uma?

Alternativa sem código: X-Mouse Button Control

Se scripts não são o seu caminho, considere o X-Mouse Button Control (XMBC). É um utilitário gratuito com interface gráfica que faz o mesmo: perfis para ficheiros .exe específicos, até 10 camadas por perfil, alternância de camadas via tecla de atalho.

Vantagens do XMBC: instala-se num minuto, a configuração é escolher uma ação num menu suspenso, não requer código. Desvantagens: menos flexibilidade (não se pode escrever uma condição com GetKeyState) e a configuração reside no registo e raramente sobrevive a uma mudança para outro computador. Para cenários básicos («fechar separador», «mudar de faixa»), uma excelente escolha. Para construções com vários níveis e modificadores mantidos premidos, só o AHK serve.

Como visar qualquer aplicação com o Window Spy

Para adicionar suporte a um novo programa, precisa de descobrir o nome do seu ficheiro executável. Na bandeja do sistema, clique com o botão direito no ícone do AHK e selecione Window Spy. Clique na janela do programa alvo; o Window Spy mostrará:

  • Window Title, o título da janela (pode visar por aqui)
  • ahk_exe, o nome do processo (por exemplo firefox.exe ou code.exe ou notion.exe)
  • ahk_class, a classe da janela (útil para distinguir diálogos dentro de uma aplicação)

Adicione um novo bloco ao mouse.ahk:

1#HotIf WinActive("ahk_exe firefox.exe")
2 F14::Send "^w"
3 ; ... your actions
4#HotIf

Guarde, Ctrl+R para recarregar o script, feito. A técnica é universal: leitores de vídeo (VLC, PotPlayer), mensageiros (Telegram, Discord), IDEs (VS Code, PhpStorm), gestores de ficheiros, qualquer coisa que tenha um .exe.

Bónus: controlar música com teclas multimédia globais

Se o seu teclado não tiver botões multimédia, o rato pode substituí-los. As ações seguintes são globais e não requerem a deteção da janela do leitor:

1; Media control — works always
2F18::Send "{Media_Prev}" ; previous track
3F19::Send "{Media_Play_Pause}" ; pause / play
4F20::Send "{Media_Next}" ; next track
5F22::Send "{Volume_Down}" ; volume down
6F23::Send "{Volume_Up}" ; volume up
7F14::Send "{Volume_Mute}" ; mute

Funciona com qualquer leitor que responda aos eventos multimédia do sistema: Spotify, YouTube Music (PWA), AIMP, foobar2000 e até o leitor integrado do Windows.

⁉️🤔 Perguntas frequentes

Porquê usar F13-F24 se o AHK consegue intercetar cliques do rato diretamente?

O AHK distingue os botões do rato como XButton1 e XButton2; são apenas dois botões extra. Os ratos gaming podem ter 8 a 12, e o driver continua a funcionar como intermediário. A cadeia «driver → F13-F24 → AHK» escala para qualquer número de botões, e o driver não tenta executar a ação por si próprio; limita-se a enviar o código da tecla. Se o script AHK falhar, os botões do rato deixam de fazer algo, em vez de começarem a executar macros inesperadas do driver.

O método funciona no Windows 11?

Sim. As teclas F13 a F24 são códigos de varrimento USB HID padrão; não estão vinculadas a uma versão do Windows. O AHK v2.0 suporta oficialmente o Windows 10 e 11. Nas versões ARM do Windows (Surface Pro X), alguns drivers de rato podem não emitir teclas virtuais, mas o Logitech G Hub e o Razer Synapse funcionam sem problemas.

E se o driver do rato não permitir atribuir F13 a F24?

Alguns ratos de escritório com software limitado estão restritos a F1-F12. Duas opções: experimente o utilitário X-Mouse Button Control, que consegue atribuir F13 a F24 independentemente do modelo do rato, ou use XButton1/XButton2 diretamente no AHK. Apenas dois botões, mas suficientes para começar.

O script pode ser transferido para outro computador?

Sim. Copie o ficheiro mouse.ahk e a pasta com o AutoHotkey Portable (disponível no site oficial). Reatribua os botões no driver do rato no novo PC para as mesmas teclas F; tudo funcionará sem alterações ao código do script.

O AHK torna o sistema mais lento?

Em inatividade, o AHK consome menos de 5 MB de RAM e 0% de CPU; a documentação oficial confirma um impacto mínimo. O hook é acionado apenas quando uma tecla monitorizada é premida; o resto do tempo o script está em espera. Para comparação, o software proprietário Razer Central «pesa» 200 a 400 MB em inatividade.

Vale a pena o esforço

A configuração inicial demora cerca de 20 minutos: associe os botões no driver, copie os excertos de código, ajuste os números das teclas F ao seu gosto. Depois disso, o script dura anos e muda de computador juntamente com o resto da sua configuração. Duas recompensas.

Primeiro: poupar micromovimentos. Fechar um separador sem Ctrl+W (um toque em vez de dois), alternar entre separadores sem Ctrl+Tab, o seletor de cor no Photoshop sem levantar a caneta do tablet. Centenas de operações acumulam-se ao longo de um dia, cada uma trivial por si só, mas que juntas somam horas ao fim de um ano.

Segundo: o efeito «magia». Quando um colega olha para o seu ecrã e não percebe como alterna entre janelas sem tocar no teclado, causa impacto. Por detrás não há magia, apenas 40 linhas de AHK e meia hora de configuração.

Se trabalha com o rato mais de 6 horas por dia, configure os botões. A primeira semana é estranha, a segunda é confortável e, ao fim de um mês, vai deixar de perceber como é que as pessoas vivem sem isso.

Aqui está um vídeo que percorre o método desde a instalação até ao primeiro script: