Atualmente, estou usando o AutoHotKey para simular o mapeamento das teclas do Happy Hacking Keyboard Pro 2 em um Topre Realforce 89.
O script que criei está disponível no github .
Eu usei a chave japonesa "muhenkan" (SC07B) para simular a chave Fn e adicionei todos os mapeamentos de teclas de combinação Fn como nos dois exemplos abaixo :
SC07B & SC002::send,{Blind}{F1} ; Fn + 1 -> F1
SC07B & SC01A::send,{Blind}{Up} ; Fn + [ -> Up
Estando localizado no lado esquerdo e direito da tecla Space, eu também quero usar "muhenkan" e "henkan" (SC079) como Enter e Backspace .
Remapear "henkan" para Backspace é feito facilmente com:
SC079::send,{BS}
+SC079::send,{BS}
^SC079::send,^{BS}
Em relação ao "muhenkan", que é usado como tecla de chave Fn , eu o mapeei para a tecla Enter com a seguinte linha:
SC07B::send,{Enter}
Parece que não há conflito com ele sendo usado como Fn e Enter:
- quando combinado com outra chave, não gera saída Enter
- quando nenhuma outra chave é combinada, ela exibe Enter após ser liberada
Há momentos em que eu posso pressionar a tecla Fn com a intenção de combiná-la com outra tecla, e eventualmente desistir dessa intenção liberando a tecla Fn .
O problema é que, ao liberar a chave, ela gera Enter, o que não é ideal.
Eu gostaria de melhorar isso configurando a chave Fn para que, quando liberada, ela apenas forneça Enter se as duas condições a seguir forem atendidas:
- nenhuma outra tecla foi pressionada entre a duração da tecla Fn foi pressionada e liberada
- a duração entre pressionar / soltar ( PARA BAIXO / PARA CIMA ) foi menor que um determinado valor (ex .: 500ms)
Existe uma maneira simples de modificar minha configuração AutoHotKey para continuar usando o SC07B como uma chave de comutação ( Fn ) e também mapeá-lo para Enter com as condições anteriores?
O fato de eu definir combinações de teclas parece fazer o mapeamento para Enter funcionar na liberação da chave, que é o que eu quero, mas também significa que não posso usar o KeyWait e verificar o tempo limite, Acredito que os comandos só começarão depois da liberação da chave (o que não faz sentido).
A_TimeSincePriorHotkey também não é utilizável, pois não reflete o tempo gasto entre a tecla de atalho atual sendo pressionada e liberada.