¿Cómo asignar la tecla "shift" a "shift" + "bloq mayús" usando AutoHotkey?

¿Cómo asignar la tecla "shift" a "shift" + "bloq mayús" usando AutoHotkey?

Estoy usando Vim, así que lo reasigné capslocka esc. Pero a veces todavía quiero capslock. Entonces me pregunto si reasignar shifta shift+ capslock:

  1. Cuando shiftse usa de la forma normal: presione prolongadamente y suelte, aún debería funcionar como shifttecla cambiando la escritura a mayúsculas.
  2. Cuando shiftse toca (presione y suelte brevemente), debería alternar capslock.

¿Es posible algo como esto? ¿Alguien conoce algún script de AutoHotkey o algún consejo sobre cómo hacer esto que pueda compartir?

Respuesta1

Utilice este script AutoHotkey ligeramente modificado deLa respuesta de Elliot DeNolf:

~Shift::
    duration := 0
    If (GetKeyState("Shift","p"))
    {
        start := A_TickCount
        While (GetKeyState("Shift"))
            Sleep, 1
        duration := A_TickCount - start
    }
    if (duration < 100) ;Change this value as needed
        if GetKeyState("CapsLock", "T") = 1
        {
            SetCapsLockState, off
        }
        else if GetKeyState("CapsLock", "T") = 0
        {
            SetCapsLockState, on
        }
    Return

Si la Shifttecla se presiona durante menos de 100 milisegundos y se suelta, la alternará CapsLk. Más de 100 ms y actuará como una tecla modificadora normal.

Si 100 ms es demasiado largo, elija un valor apropiado en la ifcondición.

información relacionada