Rimappare sia BLOC MAIUSC che MAIUSC + BLOC MAIUSC in xkb


13

Sto cercando di configurare xkb in modo tale che Caps Lock sia mappato sul tasto Compose e Shift + Caps Lock funzioni come il tradizionale Caps Lock. Ho inserito quanto segue in un nuovo file chiamato /usr/share/X11/xkb/symbols/gdwatson:

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

Poi ho corso setxkbmap -symbols 'pc+us+gdwatson(compose)', che è stato completato con successo. Caps Lock funziona come Compose, ma Shift + Caps Lock funziona come Compose anziché Caps Lock. xkbcomp :0.0rivela quanto segue:

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

La mappatura dei simboli di secondo livello sta duplicando la prima per qualche motivo, piuttosto che il valore separato che ho provato a dargli. Qualcuno ha abbastanza xkb-fu per dirmi cosa ho fatto di sbagliato o come risolverlo?


1
Posso aiutarti a farlo in Xmodmap, ma non in xkb. Se vuoi questo, rispondi positivamente (non dimenticare di scrivere @mirabilosnella tua risposta, quindi me ne accorgo) in un commento, quindi eliminerò questo commento e lo scriverò come risposta (dovresti quindi eliminare anche la risposta del tuo commento).
mirabilos,

1
Sulla tua prima linea, dovrebbe partial modifier keysessere effettivamente partial modifier_keys? Senza questa modifica, in setxkbmap -symbols 'pc+us+gdwatson(compose)'realtà esce con un errore, ma con la modifica ottengo l'output desiderato da xkbcomp :0.0. Tuttavia ottengo l'effetto collaterale indesiderato che premendo contemporaneamente Capslock mi mette in modalità Capslock e componi la modalità chiave.
Billyjmc,

Risposte:


11

Questo sembra realizzare ciò che stai cercando.

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

Le seguenti risorse sono preziose quando si ha a che fare con XKB (ho collegato i mirror di queste pagine di WayBack Machine per queste soluzioni future):


Inoltre, se fai la prima riga default partial modifier_keys, non devi specificare esplicitamente setxkbmap -symbols 'pc+us+gdwatson(compose)', puoi semplicemente farlosetxkbmap -symbols 'pc+us+gdwatson'
billyjmc
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.