Cómo tener un modificador múltiple de 'nivel 3' usando xkb

Cómo tener un modificador múltiple de 'nivel 3' usando xkb

Estoy tratando de mejorar la distribución de mi teclado xkby funcionó muy bien usando los 4 niveles predeterminados (¿o debería decir 2 niveles? Realmente no conozco los términos).

Y cuando estoy abriendo un paréntesis, encontré xkb muy mal documentado (o no sé buscar). Algunos hablan de niveles, algunos de grupos, algunos definen niveles como shift siendo el primero, AltGr el segundo. y otros consideran que el personaje base es el primero y luego aumentan cada combinación. Quiero decir que hay muchas inconsistencias...)

De todos modos, aquí están las 4 "combinaciones" predeterminadas con la tecla Men algunos teclados:

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

¿Es posible agregar a la mezcla otros modificadores?

Por ejemplo, con un modificador adicional, R Ctrlpuedo tener 6 combinaciones:

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

O incluso 8 combinaciones con los tres modificadores.
Y de hecho parece que ya existe un mapeo de 8 niveles en algunos symbolarchivos con la palabra claveEIGHT_LEVEL

Sin embargo, no busco obtener 42 combinaciones para una tecla.

Más bien, solo quiero evitar combinaciones incómodas para mis dedos y para eso prefiero tener solo combinaciones limitadas con "acceso directo", así:

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

También me gustaría mapear otros personajes o incluso movimientos.(flechas, inicio/fin, página arriba/abajo)con otros modificadores no utilizados (bloqueo de mayúsculas, bloqueo numérico)

Cómo puedo hacer esto ?

Muchas gracias.

Respuesta1

Allí puede utilizar grouppara lograr el objetivo de "dos pulsaciones de teclas":

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

Ahora debe definir el type TWO_LEVEL_BISuso de los modificadores que desee.

Vale la pena saber cuál Mode_switches una clave que incrementa el grupo real, así que eche un vistazo a su definición.

información relacionada