Reasignación de Bloq Mayús y Mayús + Bloq Mayús en xkb

13

Estoy tratando de configurar xkb de modo que el bloqueo de mayúsculas se asigne a la tecla Componer y las funciones Shift + Caps Lock como el bloqueo de mayúsculas tradicional. Puse lo siguiente en un nuevo archivo llamado /usr/share/X11/xkb/symbols/gdwatson:

partial modifier keys
xkb_symbols "compose" {
    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ Multi_key, Caps_Lock ]
    };
};

Luego corrí setxkbmap -symbols 'pc+us+gdwatson(compose)', que completó con éxito. Caps Lock funciona como Compose, pero Shift + Caps Lock funciona como Compose en lugar de Caps Lock. xkbcomp :0.0revela lo siguiente:

key <CAPS> {
    type= "TWO_LEVEL",
    symbols[Group1]= [       Multi_key,       Multi_key ]
};

El mapeo de símbolos de segundo nivel está duplicando el primero por alguna razón, en lugar del valor separado que intenté darle. ¿Alguien tiene xkb-fu lo suficientemente fuerte como para decirme qué he hecho mal o cómo solucionarlo?

Grant Watson
fuente
1
Puedo ayudarte a hacer esto en Xmodmap, pero no xkb. Si desea esto, responda positivamente (no olvide escribir @mirabilossu respuesta para que lo note) en un comentario, luego eliminaré este comentario y lo escribiré como respuesta (también debe eliminar su respuesta de comentario).
mirabilos
1
En su primera línea, en partial modifier keysrealidad debería ser partial modifier_keys? Sin este cambio, en setxkbmap -symbols 'pc+us+gdwatson(compose)'realidad sale con un error, pero con el cambio, obtengo el resultado deseado xkbcomp :0.0. Sin embargo , obtengo el efecto secundario no deseado de que presionar Capslock simultáneamente me pone en modo Capslock y modo componer teclas.
billyjmc

Respuestas:

11

Esto parece lograr lo que estás buscando.

partial modifier_keys
xkb_symbols "compose" {
    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ Multi_key, Caps_Lock ],
        actions[Group1] = [ NoAction(), LockMods(modifiers=Lock) ]
    };
};

Los siguientes recursos son invaluables cuando se trata de XKB (me he vinculado a los espejos de estas páginas de WayBack Machine para una prueba futura):

billyjmc
fuente
Además, si hace la primera línea default partial modifier_keys, entonces no tiene que especificar explícitamente setxkbmap -symbols 'pc+us+gdwatson(compose)', simplemente puede hacerlosetxkbmap -symbols 'pc+us+gdwatson'
billyjmc