Ich habe die folgende Tastatur (HHKB JP).
Ich verwende Lubuntu 14.04 und habe es bearbeitet /usr/share/X11/xkb/symbols/us
, um ein benutzerdefiniertes Layout zu implementieren .
Jetzt möchte ich die folgenden Tasten als Modifikatoren der 5., 6., 7., ... und 20. Stufe verwenden. (Unter Windows schaffe ich das mit AutoHotkey und jetzt kann ich nicht mehr ohne (zumindest einige) davon leben.)
Ich habe 2 Probleme.
- Ich weiß nicht, wie die "Namen" für einige der nicht standardmäßigen Tasten auf der Tastatur lauten (um sie hinzuzufügen
/usr/share/X11/xkb/symbols/us
). - Ich weiß nicht, wie ich zusätzliche Modifikatoren hinzufügen soll
xkb
(ich verstehe, dass diesxmodmap
veraltet ist), insbesondere "normale" Schlüssel wie9
.
Meine Fragen sind:
- Wie finde ich die Namen / Codes für die Mystery Keys heraus (z. B.
key <AC01>
)? - Wie füge ich einem bestimmten Schlüssel eine beliebige Anzahl von Modifiziererebenen hinzu?
Hinweis: Möglicherweise kann dies mit XKB nicht erreicht werden. Ich würde mich freuen, ein Skript-Tool zu kennen, das dies implementieren kann.
Antworten:
XKB-Layouts werden in einem Modell definiert, das als
RMLVO
Regeln, Modell, Layout, Variante, Optionen bezeichnet wird. Die System-XKB-Datenbank befindet sich normalerweise in/usr/share/X11/xkb
:Das
keycodes
Verzeichnis definiert Schlüsselnamen wie<CAPS>
oder<AC01>
von Scancodes, die die Schlüssel tatsächlich generieren.setxkbmap -query -verbose 10
zeigt Ihnen genau, auf welche Dateien zugegriffen wird, um Ihre aktuelle Keymap zu erstellen; Wenn es heißtkeycodes: evdev+aliases(qwerty)
, werden die../keycodes/evdev
Datei und dieqwerty
Zeilengruppe aus der../keycodes/aliases
Datei geladen. Wenn Sie Tools verwendenxev
, um zu bestimmen, welchen Schlüsselcode ein Schlüssel generiert, wird in diesen Dateien angezeigt, welcher Schlüsselname diesem Code zugeordnet ist.Ihre Modifikatorfrage ist schwieriger. Ich habe nur Hinweise auf 8 ISO-Stufen gesehen und bin mir nicht sicher, ob dies eine XKB-Einschränkung ist oder ob keine gängigen Layouts mehr als das verwenden. (Nachdem ich dies weiter untersucht habe, bin ich mir ziemlich sicher, dass Sie den XKB-Code ändern müssen, um zusätzlichen hinzuzufügen
Wie Sie sehen können, gibt es in einem 8-Ebenen-Layout nur 2 Tasten, die als "neue Modifikator" -Tasten fungieren. Siehe
/usr/share/X11/xkb/compat/level5
und/usr/share/X11/xkb/types/level5
, wo Level5-Shift-, Latch- und Lock-Verhalten definiert sind; Diese werden dann über die in definierten Symboloptionen an die Schlüssel angehängt/usr/share/X11/xkb/symbols/level5
.Wenn Sie Ihren eigenen
level9
Modifikator definiert haben, erhalten Sie durch die Kombination mit vorhandenen Ebenen 8 weitere Ebenen, bevor Sie einen weiteren Ebenenmodifikator benötigen:Wie Sie sehen können, werden viele Tasten gleichzeitig gedrückt. Die Verwendung von Schlössern und Verriegelungen anstelle von Verschiebungen würde dies verringern, aber dies wäre ein sehr kompliziertes Layout, und wir haben uns nur vorgestellt, eine Ebenenauswahl hinzuzufügen. Jede zusätzliche Auswahl würde die vorhandenen Ebenen verdoppeln.
Die "Modifikatoren", die Sie sich vorstellen, wählen wahrscheinlich eine bestimmte Ebene aus, weshalb Sie denken, dass Sie so viele benötigen. Möglicherweise können Sie solche Auswahlaktionen definieren und sie beispielsweise auf Ebene 3 dieser Tasten platzieren, sodass
level3+key9
Sie einelevel14_latch
Aktion erhalten. Wenn Sie dann die nächste Taste drücken, erhalten Sie die 14. Ebene dieser Taste.Bearbeiten : Eine weitere Frage , die speziell zum Erstellen einer gestellt wurde
ISO_Level4_{Shift,Latch,Lock}
, und ich habe eine Fälschung unterISO_Level4_Latch
Verwendung vorhandener XKB-Keysyms und -Aktionen demonstriert . Diese Methode sollte für die Stufen 4, 6, 7 und 8 wirksam sein.quelle