So erhalten Sie mit xkb mehrere Modifikatoren der Stufe 3

So erhalten Sie mit xkb mehrere Modifikatoren der Stufe 3

Ich versuche, mein Tastaturlayout zu verbessern, xkbund es hat mit den standardmäßigen 4 Ebenen (oder sollte ich 2 Ebenen sagen? Ich kenne die Begriffe nicht wirklich...) prima funktioniert.

Und wenn ich eine Klammer öffne, finde ich xkb sehr schlecht dokumentiert (oder ich weiß nicht, wie ich suchen soll). Manche sprechen von Ebenen, manche von Gruppen, manche definieren Ebenen so, dass Shift die erste und AltGr die zweite ist, und andere betrachten das Basiszeichen als das erste und erhöhen dann jede Kombination. Ich meine, es gibt viele Inkonsistenzen.)

Wie dem auch sei, hier sind die vier Standard-„Kombinationen“ mit der Taste Mauf einigen Tastaturen:

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

Ist es möglich, der Mischung andere Modifikatoren hinzuzufügen?

Beispielsweise R Ctrlkann das I mit einem zusätzlichen Modifikator sechs Kombinationen haben:

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

Oder sogar 8 Kombinationen mit allen drei Modifikatoren.
Und tatsächlich scheint es in einigen symbolDateien bereits eine 8-stufige Zuordnung mit dem SchlüsselwortEIGHT_LEVEL

Ich möchte jedoch nicht 42 Kombinationen für eine Taste erhalten.

Ich möchte lieber umständliche Kombinationen für meine Finger vermeiden und ziehe es daher vor, weiterhin nur begrenzte Kombinationen mit „direktem Zugriff“ zu haben, etwa so:

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

Ich würde auch gerne andere Charaktere oder sogar Moves abbilden(Pfeile, Home/Ende, Bild auf/ab)mit anderen unbenutzten Modifikatoren (Feststelltaste, Numlock)

Wie kann ich das machen ?

Vielen Dank.

Antwort1

Dort können Sie Folgendes verwenden, groupum das Ziel „mit zwei Tastenanschlägen“ zu erreichen:

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

Nun müssen Sie die type TWO_LEVEL_BISfür die Verwendung gewünschten Modifikatoren definieren.

Es ist wissenswert, dass Mode_switches sich um einen Schlüssel handelt, der die aktuelle Gruppe erhöht. Sehen Sie sich also seine Definition an.

verwandte Informationen