Como ter o modificador múltiplo de 'nível 3' usando xkb

Como ter o modificador múltiplo de 'nível 3' usando xkb

Estou tentando melhorar o layout do meu teclado xkbe funcionou muito bem usando os 4 níveis padrão (ou devo dizer 2 níveis? Eu realmente não conheço os termos.

E quando estou abrindo um parêntese, achei o xkb muito mal documentado (ou não sei pesquisar).. Alguns falam de níveis, alguns de grupos, alguns definem níveis como shift sendo o primeiro, AltGr o segundo e outros consideram que o caractere base é o primeiro e depois aumenta cada combinação. Quero dizer, há muitas inconsistências..)

De qualquer forma, aqui estão as 4 "combinações" padrão com a tecla Mem alguns teclados:

// Pressing   <M> <Shift+M> <AltGr+M> <Shift+AltGr+M>
key <AB07> { [ m ,    M    ,    mu   ,      mu       ] }; // m M µ µ

É possível adicionar outros modificadores ao mix?

Por exemplo, com um modificador extra, por exemplo, R Ctrlposso ter 6 combinações:

// Pressing   <M> <Shift+M> <AltGr+M> <AltGr+Shift+M> <RCtrl+M> <RCtrl+Shift+M>
key <AB07> { [ m ,    M    ,    mu   ,    mu         , comma  , semicolon] };// m M µ µ , ;

Ou até 8 combinações com todos os três modificadores.
E de fato parece que já existe um mapeamento de 8 níveis em alguns symbolarquivos com a palavra-chaveEIGHT_LEVEL

No entanto, não pretendo obter 42 combinações para uma tecla.

Em vez disso, quero apenas evitar combinações estranhas para os meus dedos e, por isso, prefiro ainda ter apenas combinações limitadas com "acesso direto", assim:

// Pressing   <M> <Shift+M> <AltGr+M>  <RCtrl+M>  <RWin>+M
key <AB07> { [ m ,    M    ,  comma  , semicolon ,    µ   ] }; // m M , ; µ

Eu também gostaria de mapear outros personagens ou até mesmo movimentos(setas, início/fim, página para cima/para baixo)com outros modificadores não utilizados (capslock, numlock)

Como posso fazer isso ?

Muito obrigado.

Responder1

Lá você pode usar grouppara atingir o objetivo de "duas teclas":

key <AB07> { 
type[group1]= "FOUR_LEVEL",
type[group2]= "TWO_LEVEL_BIS",
symbols[group1]= [ m ,    M    ,  comma  , NoSymbol],
symbols[group2]= [ semicolon ,    µ ] 
};

Agora você deve definir o type TWO_LEVEL_BISuso dos modificadores desejados.

Vale a pena saber o que Mode_switché uma chave que incrementa o grupo real, então dê uma olhada na sua definição.

informação relacionada