Questão Definir a tecla caps lock como CTRL, mas ainda funcionar como caps lock se eu pressionar por tempo suficiente no Mac OS X


Se possível, gostaria de algo semelhante a isto: https://apple.stackexchange.com/a/4815/31313

Basicamente, um script simples que detecta quando estou em tmux, se eu for alterar a tecla de bloqueio CAPS para ser uma tecla CTRL, caso contrário, reverta-a.

No entanto, também é importante para mim usar a tecla de bloqueio CAPS de tempos em tempos, nessas ocasiões, eu gostaria de mantê-la pressionada por 5 segundos e, em seguida, ela dispara uma trava CAPS normal.

Isso seria fácil de fazer? Possível fazer? Eu preferiria que não usasse nenhum tipo de software extra para poder colocar isso em um script.

Informação extra:

Eu gostaria de conseguir isso em um Mac Mini com o OSX Snow Leopard, se possível também com o Mountain Lion.


0


origem




Respostas:


Se você já mudou o caps lock para controle, adicione isso ao private.xml no KeyRemap4MacBook faria com que o controle de retenção (ou caps lock) alternasse o caps lock:

<autogen>--HoldingKeyToKey-- KeyCode::CONTROL_L, KeyCode::CONTROL_L, KeyCode::VK_NONE, KeyCode::CAPSLOCK, Option::NOREPEAT</autogen>

O limite para manter teclas é de 0,2 s por padrão, mas pode ser alterado na segunda guia.

(Eu sugeri mudar fn + control (fn + caps lock) para caps lock no pergunta anterior em Pergunte diferente:)

<autogen>--KeyToKey-- KeyCode::CONTROL_L, ModifierFlag::FN, KeyCode::CAPSLOCK</autogen>

Se você quiser apenas manter alguma tecla como caps lock, você também pode alterar o controle para caps lock em System Preferences.


2



Então, eu adicionaria <only>TERMINAL</only> após a declaração autogen? Ou dentro dela? Isso também funcionaria se o iTerm fosse usado em vez do aplicativo Terminal? Obrigado pela dica, embora eu não tenha uma tecla fn com este teclado (é um par de gerações de iMac de volta), você acha que funcionaria se eu fiz <kbd> Option + Shift + Caps lock </ kbd> ? - greduan
Antes ou depois. Mas <only>TERMINAL</only> é apenas Terminal.app, e não há constante para o iTerm. Para opção e turno, mude ModifierFlag::FN para VK_OPTION | VK_SHIFT. - user495470
OK, então eu uso <autogen>--HoldingKeyToKey-- KeyCode::CONTROL_L, KeyCode::CONTROL_L, KeyCode::VK_NONE, KeyCode::CAPSLOCK, Option::NOREPEAT</autogen><only>TERMINAL</only> se eu quiser a funcionalidade que solicitei na postagem, após alterar o limite da chave de espera. E eu faria <autogen>--KeyToKey-- KeyCode::CONTROL_L, VK_OPTION | VK_SHIFT, KeyCode::CAPSLOCK</autogen><only>TERMINAL</only> se eu quiser remapear caps lock para CTRL e pressione <kbd> Option + Shift + Caps lock </ kbd> para alternar caps lock. Certo? - greduan
Se você quisesse que o caps lock funcionasse como caps lock fora do Terminal, você precisaria usar PCKeyboardHack para mudar o caps lock para algo como F19 e ​​depois remapear F19. - user495470
Ah eu vejo, obrigado! Embora isso resolva, ele não faz isso com um script, então não vou aceitá-lo, mas é definitivamente uma solução alternativa. Obrigado por ver isso. :) - greduan