Configurar accesos rápidos con AutoHotkey: líder, doble toque y trucos

Última actualización: noviembre 6, 2025
  • Convierte una combinación en «tecla líder» y multiplica atajos con toque simple o doble.
  • Haz hotkeys «spameables» con {Blind} para respetar modificadores como Ctrl.
  • Mejora la usabilidad con GUI mínima, organización por categorías y #IfWinActive.

Atajos con AutoHotkey en Windows

Si alguna vez has sentido que tus atajos de teclado se te quedan cortos, con AutoHotkey (AHK) puedes ir mucho más lejos y moldear Windows a tu gusto. Crear accesos rápidos propios, encadenar combos y disparar scripts con una sola mano está al alcance de cualquiera en unos minutos.

Más allá de los clásicos Ctrl+Q o Ctrl+W, AHK permite un enfoque más flexible: usar una tecla «líder» que convierte la siguiente pulsación en una acción distinta. Este truco multiplica las combinaciones sin mover la mano izquierda, además de admitir «doble toque» para variantes, una mini señal visual en pantalla y hasta comportamientos «spameables» que no sueltan Ctrl.

Qué es AutoHotkey y por qué merece la pena

AutoHotkey es un lenguaje de scripts gratuito para Windows que escucha tus combinaciones y ejecuta lo que hayas programado. Los scripts son archivos .ahk que editas con cualquier bloc de notas, y al ejecutarlos el sistema queda «a la escucha» de tus hotkeys y hotstrings (expansiones de texto).

Sus modos de envío de teclas marcan la diferencia: Send, SendInput o SendEvent. Para atajos veloces y estables, combina SendMode Input con SetKeyDelay -1 y notarás respuestas más rápidas y sin latencias molestas.

No necesitas programar mucho: copiar y adaptar ejemplos funciona sorprendentemente bien. Y si quieres llevar tus soluciones a cualquier PC, puedes compilar el script a EXE para ejecutar sin instalar AHK en destino.

Del atajo clásico a la «tecla líder»: combina sin moverte

El problema típico es consumir combos cómodos con la mano izquierda: Ctrl+Q, Ctrl+W, Ctrl+E… y te quedas sin hueco. La alternativa es declarar, por ejemplo, Ctrl+Q como «líder» temporal: lo pulsas y la siguiente tecla (Q, W, E, R…) decide qué script se ejecuta. Tras eso, todo vuelve a la normalidad.

Así, Ctrl+Q seguido de Q puede lanzar un Script 1, y Ctrl+Q seguido de W un Script 2, y así con todo el abecedario. El número de combinaciones crece de forma bestial sin que tu mano abandone la zona de confort.

¿Aún te parece poco? Añade el «doble toque»: Ctrl+Q, Q, Q para Script 3; Ctrl+Q, W, W para Script 4; y, si quieres, hasta triple toque. No es “infinito” a nivel físico, claro, pero en la práctica te sobrarán atajos antes de quedarte sin ideas.

Para que sea más cómodo, mucha gente muestra una pista visual: un cuadradito naranja, arriba a la derecha, que aparece al activar el modo líder y desaparece tras la siguiente tecla. Es un «ok, el modo está listo» que evita dudas.

  Windows 10 tendrá actualizaciones de seguridad gratis en Europa: condiciones, fechas y límites

Casos reales: categorías por líderes y usos diferentes

Organizar atajos por «familias» funciona de maravilla. Por ejemplo: Ctrl+Q para tareas de trabajo, Ctrl+W para abrir aplicaciones y Ctrl+R para ocio o scripts personales. Dentro de cada líder, la segunda tecla decide la acción concreta, y el doble toque abre variantes.

Si juegas y automatizas pequeñas acciones, puedes usar Ctrl+R como líder de «juego» y, por ejemplo, Ctrl+R luego P para un script de piano con un preset, y doble P para cargar otra canción. Es rápido, ordenado y escalable.

Quien diga que no hay «infinito» en físico tiene razón, pero esto va de práctica: con letras, doble toque y, si hace falta, triple, tendrás más combinaciones de las que puedas memorizar de forma cómoda.

Implementación AHK v1: líder con doble toque y GUI de confirmación

Empecemos con un ejemplo sencillo en AutoHotkey v1 que activa Ctrl+Q como líder, muestra la mini GUI naranja, espera una tecla y distingue toque simple de doble toque. Puedes ampliarlo con todas las letras que necesites.

#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
SetKeyDelay, -1, -1
#InstallKeybdHook

; Ctrl+Q como líder con indicador y doble toque
$^q::
 if (leaderBusy)
  return
 leaderBusy := true
 ; Mini GUI naranja en esquina superior derecha
 SysGet, mon, MonitorWorkArea, 1
 Gui, +AlwaysOnTop -Caption +ToolWindow
 Gui, Color, FF7F00
 Gui, Show, % "x" monRight-28 " y" monTop+10 " w18 h18", Leader
 ; Espera una tecla (800 ms)
 Input, LKey, L1 T0.8 V
 Gui, Destroy
 if (ErrorLevel = "Timeout" || LKey = "") {
  leaderBusy := false
  return
 }
 ; Doble toque si repites la misma tecla rápido
 second := ""
 KeyWait, %LKey%, T0.3
 if (!ErrorLevel)
  Input, second, L1 T0.3 V
 if (second = LKey)
  Gosub, Leader_Double_%LKey%
 else
  Gosub, Leader_Single_%LKey%
 leaderBusy := false
return

; Ejemplos de acciones
Leader_Single_q:
 MsgBox, 64, Script 1, Ejecutado con Ctrl+Q luego Q
return

Leader_Single_w:
 MsgBox, 64, Script 2, Ejecutado con Ctrl+Q luego W
return

Leader_Double_q:
 MsgBox, 64, Script 3, Doble toque en Q
return

Leader_Double_w:
 MsgBox, 64, Script 4, Doble toque en W
return

Solo tienes que añadir tus etiquetas tipo Leader_Single_letra y Leader_Double_letra y colgar ahí tus acciones (abrir apps, enviar pulsaciones, lanzar scripts…). El patrón es muy fácil de mantener y ampliar.

Hacer un hotkey «spameable» sin soltar Ctrl: el caso de ^g → ^t y luego Alt+g

Un clásico: quieres que Ctrl+G envíe Ctrl+T y luego Alt+G, pero que, si sigues manteniendo Ctrl físicamente, puedas spamear el atajo sin que se suelte. La clave está en {Blind}, que respeta el estado real de los modificadores que tienes pulsados.

SendMode Input
$^g::
 ; {Blind} conserva el Ctrl físico al mandar la "t"
 SendInput, {Blind}{t}
 ; Luego Alt+g explícito
 SendInput, !g
return

Con este patrón no necesitas cerrar ni reabrir Ctrl a mano. Como nunca envías {CtrlUp}, Ctrl sigue donde estaba (tú lo tienes pulsado). Si una app es quisquillosa, añade un pequeño Sleep o separa los envíos:

$^g::
 SendInput, {Blind}^t
 Sleep, 10
 SendInput, {Blind}!g
return

Otra opción es usar eventos down/up manuales, pero no lo recomiendo salvo que sepas por qué lo necesitas. El enfoque con SendInput + {Blind} suele ser más rápido y robusto en la mayoría de programas.

  Añadir usuarios a un grupo en Linux

Atajos útiles del día a día: ventanas, texto y portapapeles

Remapear atajos del sistema es facilísimo —y si necesitas eliminar accesos directos antiguos, puedes eliminar accesos directos con CCleaner Portable—. Por ejemplo, abrir el Administrador de tareas desde Ctrl+Q enviando su combo nativo (Ctrl+Shift+Esc). El envío con SendInput es rápido y fiable:

^q::
 SendInput, ^+{Esc}
return

Para escribir fragmentos recurrentes (correo, firma, plantillas), puedes teclearlos directamente o cargarlos al portapapeles. La diferencia es si quieres que se escriba o prefieres pegar tú:

; Escribir directamente
yourHotkey1::
 SendInput, micorreo@ejemplo.com
return

; Preparar el portapapeles
yourHotkey2::
 Clipboard := "micorreo@ejemplo.com"
return

Si te gusta la autocorrección o las expansiones, los hotstrings son una delicia: puedes corregir erratas al vuelo o expandir palabras clave en bloques largos.

Fechas automáticas: mes actual y mes anterior sin líos

Insertar el nombre del mes (en español) es un gesto recurrente. Con AHK lo haces con una tecla. Este snippet obtiene el mes actual y lo teclea:

^+!F4:: ; Ctrl+Shift+Alt+F4
 time := A_NowUTC
 FormatTime, mes, %time%, L0x0C0A, MMMM ; Español (España)
 SendInput, %mes%
return

Y para el mes anterior, basta restar un día al día 1 del mes actual y formatear. Así evitas cálculos manuales con meses de 28, 30 o 31 días:

^+!F5:: ; Ctrl+Shift+Alt+F5
 date := (A_YYYY . A_MM . "01")
 date += -1, days
 FormatTime, mesAnterior, %date%, L0x0C0A, MMMM
 SendInput, %mesAnterior%
return

Una vuelta más: copiar una celda, reemplazar el mes anterior por el actual y pegar el resultado. Ideal para flujos mensuales en hojas de cálculo:

^+!F6::
 time := A_NowUTC
 FormatTime, mesActual, %time%, L0x0C0A, MMMM
 date := (A_YYYY . A_MM . "01")
 date += -1, days
 FormatTime, mesAnterior, %date%, L0x0C0A, MMMM
 SendInput, ^c
 ClipWait, 0.5
 texto := Clipboard
 texto := StrReplace(texto, mesAnterior, mesActual)
 Clipboard := texto
 SendInput, ^v
return

Script con la rueda del ratón para moverse por la barra de ítems

Existe un enfoque muy práctico para juegos con barra de ranuras: usar la rueda del ratón para avanzar/retroceder por los ítems, con emparejado de teclas para equipar a la vez espada y escudo, báculo y runas, etc. La idea es que al desplazarte a uno, su pareja también se seleccione.

Este tipo de script (pensado en AHK v1) suele exponer unas variables muy claras al inicio: doubleKeyPairs define los pares de ranuras que deben ir juntas (por ejemplo ] para espada/escudo), skipKeys excluye ranuras que no quieres afectar (comida/bebidas), maxSlot marca cuántas ranuras existen, e invertScroll invierte el sentido de la rueda si no te convence el predeterminado.

  Flyby11: Actualiza a Windows 11 sin necesidad de TPM ni Secure Boot

Además, conviene tener una tecla para pausar o suspender el script si algo se comporta raro; por ejemplo, ~g:: para activar/desactivar rápidamente sin cerrar el proceso. Aunque no suele chocar con menús, configuraciones o rotaciones de estructuras, siempre puede haber excepciones, así que va bien contar con un interruptor de emergencia.

La compatibilidad con AHK v2 no está garantizada si fue escrito para v1 tal cual, por lo que, si usas v2, quizá tengas que ajustar sintaxis. Si aún no tienes AutoHotkey instalado, descárgalo desde su web oficial e instala la versión estable antes de probar.

Cargar scripts al iniciar Windows y compilar a EXE

Para que tus atajos estén activos nada más arrancar, crea un acceso directo a tu .ahk en la carpeta de inicio de sesión. Abre Win+R, escribe shell:startup y pega ahí el acceso directo. Desde entonces, el script se carga automáticamente con tu usuario.

Si necesitas usarlo en un equipo donde no quieres (o no puedes) instalar AHK, compila el script a ejecutable con el menú contextual. Botón derecho sobre el .ahk → Compile Script y listo: obtienes un .exe autosuficiente.

Buenas prácticas para que todo vaya fino

Detallitos que se notan: usa SendMode Input y SetKeyDelay -1,-1 para velocidad; añade el prefijo $ a hotkeys que envíen teclas similares para evitar recursión; y, cuando simules pulsaciones con modificadores, apóyate en {Blind} para respetar el estado físico de Shift, Ctrl o Alt.

Si un hotkey debe actuar solo en determinadas apps, encapsúlalo con #IfWinActive o filtros por título de ventana y evitarás interferencias. También puedes subir prioridad de captura con #UseHook cuando una aplicación intercepta demasiados atajos.

Cuidado con pisar atajos del sistema (copiar, pegar, deshacer…). Es mejor inventar combos neutros que no peleen con tu memoria muscular. Y, en scripts grandes, divide por temas y usa #Include: mantenerlos será mucho más llevadero.

Finalmente, documenta. Un comentario claro junto a cada sección y nombres autoexplicativos (Leader_Single_x, Apps_Double_x, etc.) hacen milagros cuando vuelves al archivo meses después. Y no subestimes una GUI de confirmación mínima al activar el líder: te da la certeza de que el modo está «armado» y te quita fricción mental.

Con una tecla «líder» para agrupar acciones, variantes por doble toque, secuencias spameables que no sueltan Ctrl y unos cuantos snippets de productividad (texto, fechas, ventanas, búsquedas), AutoHotkey te permite trabajar a la velocidad de tu cabeza. La combinación de organización por categorías (trabajo, apps, ocio), feedback visual y buenas prácticas de envío de teclas crea un sistema de atajos potente, escalable y, sobre todo, cómodo de usar cada día.

Artículo relacionado:
¿Cómo se personalizan los accesos directos en Windows 11?