Quando Caps Lock é pressionado, a barra de espaço retorna sublinhado

4

Basicamente, o que eu estou procurando é: quando CapsLock está ativo Eu quero Espaço para retornar _ e eu quero < kbd> Shift + Espaço para retornar .

Detalhe: é uma continuação do pergunta Eu perguntei sobre o remapeamento das teclas Shift + Espaço para ser um sublinhado ( _ ). Eu tenho uma ótima resposta, mas eu achei um pouco complicado, especialmente quando eu tenho um mindinho preguiçoso que não gosta de usar a tecla Shift na hora de eu acertar o < Tecla kbd> Espaço . Então, agora eu estou querendo saber se alguém sabe de uma solução para fazer com que a tecla Space possa remapear para underscore quando o CapsLock está ativado. E, melhor ainda, se CapsLock estiver ligado e eu pressionar a combinação + Space , forçará um caractere de espaço. Isso faz sentido? Vá em frente e peça esclarecimentos.

Ah, a propósito, a solução para a pergunta que fiz anteriormente pode ter o poder de fazer isso. É chamado de AutoHotKey . Se isso acontecer, então estou totalmente feliz com isso! Obrigado!

    
por kentcdodds 03.05.2012 / 16:37

2 respostas

11

Script do AutoHotkey:

+Space::
state := GetKeyState("CapsLock", "T")
if state
    SendPlay {Space}
else
    SendPlay _
return

Space::
state := GetKeyState("CapsLock", "T")
if state
    SendPlay _
else
    SendPlay {Space}
return

O que faz:

  • Se CapsLock estiver não ativo:

    • Espaço insere espaço.

    • Deslocamento + Espaço insere o sublinhado.

  • Se CapsLock estiver ativo:

    • Espaço insere o sublinhado.

    • Deslocamento + Espaço insere espaço.

Se você quer que o Espaço se comporte normalmente quando CapsLock está não ativo, apenas elimine o primeiro bloco.

Como usar:

  1. Faça o download e instale a versão mais recente.

  2. Salve o script acima como underscore.ahk , usando seu editor de texto favorito.

  3. Clique duas vezes no arquivo para executar o script.

  4. Se desejar, copie o script (ou um link para ele) na pasta Startup .

Como funciona:

  • +Space:: ... return executa ... quando Shift + Espaço é pressionado.

    +Space:: ... return executa ... quando Espaço é pressionado (sem modificadores).

  • state := GetKeyState("CapsLock", "T") verifica se o CapsLock está ativo.

    • Se for, state é true e o bloco após if state será executado.

    • Se não for, state é false e o bloco após else será executado.

  • SendPlay X insere o caractere (sequência) X .

    Você não pode usar Send aqui, pois acionaria o script recursivamente, resultando em um loop infinito.

  • return termina o script no ponto atual.

    O segundo return é opcional, o primeiro não é. Sem este último, Shift + Espaço faria com que ambos os blocos fossem executados.

por 03.05.2012 / 16:54
0
$Space::
state := GetKeyState("CapsLock", "T")
if state
    Send _
else
    Send {Space}
return        

A resposta acima não funcionou para mim também. Isso funcionou no entanto.

    
por 11.10.2018 / 19:55