macOS remapear chaves como modificadores

1

A situação

Eu uso um layout de teclado chamado 3l (layout de três) que é um layout de teclado em camadas. Aqui está a camada principal (o comportamento quando nenhuma tecla modificadora é pressionada):

Agora,quandoestoumantendopressionadoo'emumtecladonormal(symem3l),estounomodo"símbolos" e o restante do teclado se comporta diferentemente. Aqui está uma foto desse modo:

Efetivamente,estachavedesímbolosécomoumaespecialquemepermiteacessarcaracteresespeciais.

Adicionalmente,eutenhoumacamadadenúmerosquetemomesmoefeitoqueacamadadesímboloseéativadapelatecla/,mastemcontrolesdecursoretecladonumérico:

ApessoaqueeubifurqueimeulayoutjátinhaolayoutfuncionandonoLinuxenoWindows(usandooAutoHotKey).Eutambémestoutentandoportá-loparaomacOS.Atéagoraeucrieiumarquivo3l.keylayout( veja aqui ) e tenho muito funcionalidade básica de trabalho.

O que está funcionando

  1. As teclas no modo normal funcionam bem.
  2. Se eu pressionar a tecla modificadora do símbolo, o primeiro caractere que pressionar será exibido como o símbolo correto. Por exemplo, se eu pressionar a tecla de símbolo e, em seguida, O , / será enviado.
  3. O mesmo vale para a tecla cur / num da saída do teclado numérico.

O que não está funcionando

  1. Se eu mantiver pressionada a tecla modificadora do símbolo e digitar vários caracteres, somente o primeiro realmente emitirá o símbolo. (O mesmo vale para a chave cur / num também).
  2. Se eu pressionar e soltar uma das teclas modificadoras e pressionar outra tecla, o símbolo / número será emitido. Este não deve ser o caso. Quando eu libero a tecla modificadora, eu quero que ela volte ao modo normal (assim como a tecla Shift ).
  3. As teclas de manipulação do cursor não funcionam de maneira confiável em todos os aplicativos e também têm o problema de não permitir chaves repetidas quando funcionam.

Minha pergunta

Existe alguma maneira de obter a funcionalidade que descrevi acima no macOS (Sierra e posterior)?

Nota : Eu também tentei remapear ' e / para a opção direita e direita usando o Karabiner Elements e então tentei criar um novo keymap em 3l.keylayout que é ativado por essas chaves. Isso não funcionou, no entanto. Ele estragou tudo e eu entrei em uma situação-chave de controle / opção perpétua.

    
por jsve 26.06.2017 / 04:45

1 resposta

0

Consegui corrigir esse problema usando modificações complexas do Karabiner-Elements .

Este é o meu arquivo karabiner.json completo.

Em profiles -> rules -> manipulators , adicionei dois manipuladores. Um para sym e um para cur .

Eu copiei o manipulador sym abaixo:

{
    "conditions": [

            "name": "sym",
            "type": "variable_if",
            "value": 0
        },
        {
            "name": "cur",
            "type": "variable_if",
            "value": 0
        }
    ],
    "from": {
        "key_code": "quote",
        "modifiers": {
            "optional": [
                "any"
            ]
        }
    },
    "to": [
        {
            "set_variable": {
                "name": "sym",
                "value": 1
            }
        }
    ],
    "to_after_key_up": [
        {
            "set_variable": {
                "name": "sym",
                "value": 0
            }
        }
    ],
    "type": "basic"
}

Em seguida, passei por todas as configurações principais, ou seja, quando a tecla é pressionada sem modificador, o modificador sym e o modificador cur .

Isso funciona perfeitamente.

    
por 15.08.2017 / 22:57