Erneutes Zuordnen von Feststelltaste und Umschalt + Feststelltaste in xkb

13

Ich versuche, xkb so zu konfigurieren, dass die Feststelltaste der Verfassen-Taste zugeordnet ist und Umschalt + Feststelltaste wie die herkömmliche Feststelltaste funktioniert. Ich habe Folgendes in eine neue Datei mit dem Namen eingefügt /usr/share/X11/xkb/symbols/gdwatson:

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

Dann lief ich setxkbmap -symbols 'pc+us+gdwatson(compose)', was erfolgreich abgeschlossen wurde. Die Feststelltaste fungiert als Verfassen, aber Umschalt + Feststelltaste fungiert anstelle der Feststelltaste als Verfassen. xkbcomp :0.0offenbart Folgendes:

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

Die Symbolzuordnung der zweiten Ebene dupliziert aus irgendeinem Grund die erste und nicht den separaten Wert, den ich versucht habe. Hat jemand genug xkb-fu, um mir zu sagen, was ich falsch gemacht habe oder wie ich es reparieren kann?

Grant Watson
quelle
1
Ich kann dir dabei helfen in Xmodmap, aber nicht in xkb. Wenn Sie dies wünschen, antworten Sie positiv (vergessen Sie nicht, @mirabilosIhre Antwort einzutragen, damit ich es bemerke) in einem Kommentar. Dann lösche ich diesen Kommentar und schreibe ihn als Antwort (Sie sollten dann auch Ihre Kommentarantwort löschen).
Mirabilos
1
In Ihrer ersten Zeile sollte partial modifier keyseigentlich sein partial modifier_keys? Ohne diese Änderung wird setxkbmap -symbols 'pc+us+gdwatson(compose)'tatsächlich mit einem Fehler beendet, aber mit der Änderung erhalte ich die gewünschte Ausgabe von xkbcomp :0.0. Allerdings habe ich den unerwünschten Nebeneffekt, dass ich durch gleichzeitiges Drücken der Feststelltaste in den Feststelltastenmodus und in den Kompositionsmodus versetzt werde.
billyjmc

Antworten:

11

Dies scheint das zu erreichen, wonach Sie suchen.

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

Die folgenden Ressourcen sind für den Umgang mit XKB von unschätzbarem Wert (für die Zukunftssicherheit habe ich auf die Spiegel dieser Seiten der WayBack-Maschine verwiesen):

billyjmc
quelle
Auch wenn Sie die erste Zeile machen default partial modifier_keys, müssen Sie nicht explizit angeben setxkbmap -symbols 'pc+us+gdwatson(compose)', Sie können einfach tunsetxkbmap -symbols 'pc+us+gdwatson'
billyjmc