Como mapear a tecla “shift” para “shift” + “capslock” usando o AutoHotkey?

1

Estou usando o Vim, então remapi capslock para esc . Mas eu ainda quero capslock às vezes. Então, estou pensando em remapear shift para shift + capslock :

  1. Quando shift é usado da maneira normal: Pressione e solte longamente, ele ainda deve funcionar como tecla shift alterando a digitação para maiúsculas.
  2. Quando shift é tocado (pressione e solte rapidamente), ele deve alternar capslock .

É algo assim possível? Alguém sabe de algum script do AutoHotkey ou dicas de como fazer isso?

    
por Aaron Shen 13.03.2015 / 04:35

1 resposta

1

Use este script AutoHotkey ligeiramente modificado da resposta 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

Se a tecla Shift for pressionada por menos de 100 milisegundos e liberada, ela alternará a tecla CapsLk . Mais de 100 mseg e atuará como uma tecla modificadora normal.

Se 100 mseg for muito longo, escolha um valor apropriado na condição if .

    
por 13.03.2015 / 06:36