¿Cómo reasignar una tecla de mi teclado dependiendo de si fue presionada rápidamente o mantenida presionada por un segundo o más?

¿Cómo reasignar una tecla de mi teclado dependiendo de si fue presionada rápidamente o mantenida presionada por un segundo o más?

Obtuve un nuevo teclado (Keychron K6) y, para resumir, me gustaría que mi Esctecla solo se asigne Esccuando la mantengo presionada por un segundo. Si simplemente lo toco como una pulsación de tecla normal, necesito que sea la tecla de tilde o acento grave.

Entonces:

  • Presione Esc: Resultado en~
  • Mantenga pulsado Escdurante un segundo: resulta enEsc

Miré la herramienta Administrador de teclado en PowerToys y también jugueteé un poco con AutoHotKey, y ambas parecen muy poderosas, pero ninguna parece ser capaz de considerar si una tecla se mantiene presionada o presionada brevemente.

¿Es esto siquiera posible?

¡Salud!

Respuesta1

Acabo de probar esto, este script AutoHotKey debería funcionar

$esc::
 KeyWait,esc,T0.5 ;wait 0.5 seconds for release key
 If (ErrorLevel) ;more than 0.5 sec have passed
 {
  Send {esc}
  keyHeld = 1
  KeyWait,esc
 }
Return

$esc up::
 If (keyHeld = 0) ;If not held down
  Send ``
 Else
  keyHeld = 0
Return

shift & esc::
 Send ~
 keyHeld = 1
Return

información relacionada