„1. Was macht der Modifikator der 5. Stufe? “
Es wählt die fünfte Ebene. Der Modifikator der 2. Ebene (nur reguläre Verschiebung) wählt die zweite Ebene und die 3. Ebene wählt die dritte Ebene.
Der Grund, warum der Modifikator der 5. Ebene die fünfte Ebene anstelle der vierten Ebene wählt (direkt nach dem Modifikator der 3. Ebene), ist, dass diese drei Modifikatoren auf unterschiedliche Weise kombiniert werden können, um acht verschiedene Ebenen auszuwählen (dies beinhaltet, dass keiner der Modifikatoren verwendet wird, das ist nur ein Tastendruck ohne solche Modifikatoren). Es gibt acht Kombinationen, da 2 ↑ 3 = 8. Für die ersten beiden Modifikatoren gibt es vier Kombinationen:
- Keine Modifikatoren (Stufe 1)
- 2nd Level Modifier, auch bekannt als Shift (Level 2)
- 3rd Level Modifikator (Level 3)
- 2. + 3. Modifikator (Stufe 4)
Durch Hinzufügen des dritten Modifikators (5. Stufe) werden vier weitere Stufen hinzugefügt.
„2. Wie richte ich es so ein, dass ich 5 oder 6 verschiedene Zeichen aus einer einzigen Taste herausholen kann Alt Gr( Right
Ctrlzum Beispiel durch Umschalttaste geändert )? “
Zunächst benötigen Sie ein Layout, das fünf oder mehr Zeichen pro Taste verwendet. Sie können ein vorhandenes Layout auswählen. Wenn Sie dem derzeit verwendeten Layout jedoch einfach weitere Ebenen hinzufügen möchten, ist dies möglicherweise nicht optimal. Zum Beispiel gibt es das Neo- Tastaturlayout († 1), das jedoch für die deutsche Sprache optimiert ist, sodass es für die meisten Englischsprachigen nicht so gut ist.
Trotzdem kann es lehrreich sein, sich anzuschauen, welche Tasten Neo für den Level 5-Modifikator ausgewählt hat.
Neo nennt anscheinend den Level 5 Modifier für "Mod4". Wie Sie sehen können, wird die Taste rechts von der linken Umschalttaste ( LSGT
) und die rechte Alt-Taste / AltGr
-Taste verwendet. Dies ist bei einer europäischen Tastatur (105 Tasten) der Fall, die im Vergleich zur US-Tastatur (104 Tasten) eine schmale Linksverschiebung und eine große und dünne Eingabetaste aufweist. Für ein Tastaturlayout, das auf der US-Tastatur basiert, muss oder möchte man möglicherweise andere Tasten wählen.
Auswahl einer Modifizierertaste der Stufe 5
In der Antwort von sup wählt er Xmodmap. Heutzutage werden Tools wie Setxkbmap gegenüber Xmodmap empfohlen. Xkb enthält viele vordefinierte Optionen für die Auswahl des Level 5-Modifikators. Wenn Sie sich an
man xkeyboard-config wenden und danach suchen lv5
, finden Sie folgende Optionen:
┌──────────────────────┬───────────────────────────────────────────────────┐
│ Option │ Description │
├──────────────────────┼───────────────────────────────────────────────────┤
│ lv5:lsgt_switch_lock │ <Less/Greater> chooses 5th level; acts as onetime │
│ │ lock when pressed together with another 5th level │
│ │ chooser │
├──────────────────────┼───────────────────────────────────────────────────┤
│ lv5:ralt_switch_lock │ Right Alt chooses 5th level; acts as onetime lock │
│ │ when pressed together with another 5th level │
│ │ chooser │
├──────────────────────┼───────────────────────────────────────────────────┤
│ lv5:lwin_switch_lock │ Left Win chooses 5th level; acts as onetime lock │
│ │ when pressed together with another 5th level │
│ │ chooser │
├──────────────────────┼───────────────────────────────────────────────────┤
│ lv5:rwin_switch_lock │ Right Win chooses 5th level; acts as onetime lock │
│ │ when pressed together with another 5th level │
│ │ chooser │
└──────────────────────┴───────────────────────────────────────────────────┘
Die dokumentierten Optionen sind also die LSGT
Taste, die rechte ALT-Taste, die rechte Windows-Taste und die linke Windows-Taste. Wie wir gesehen haben, verwendet Neo die ersten beiden Optionen.
Angenommen, Sie möchten die lv5:ralt_switch_lock
Option mit einem bestimmten Layout verwenden. Dieser Befehl richtet das us
Layout mit dieser Modifikatortaste der Ebene 5 ein:
setxkbmap -option "lv5:ralt_switch_lock" us
man xkeyboard-config
Verwenden Sie daher für alle Optionen, die in dokumentiert sind , diese als Argument für die -option
Verwendung von Setxkbmap.
Wenn diese Optionen nicht ausreichen und Sie einen anderen Schlüssel als Modifikator der Ebene 5 definieren möchten, sollten Sie die Deklarationen für diese Optionen lesen. Sie scheinen in zu sein
/usr/share/X11/xkb/symbols/level5
. Die Deklaration für
lv5:ralt_switch_lock
sieht so aus:
partial modifier_keys
xkb_symbols "ralt_switch_lock" {
include "level5(lock)"
key <RALT> {
type[Group1] = "EIGHT_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
};
};
Die rechte Seite von gibt symbols[Group1]
an, welche Taste oder welches Zeichen die einzelnen Ebenen der Taste erzeugen sollen. Diese nutzt alle acht möglichen Stufen , da es soll sperren die Stufe 5 Modifikator , wenn sie zusammen mit einer anderen Ebene 5 Shift - Taste gedrückt wird . Die Ebenen 5–8 werden ausgegeben,
ISO_Level5_Lock
da auf alle diese Ebenen zugegriffen wird, indem die Schicht 5 und eine Kombination der anderen Schichttasten (keine für alle) gedrückt gehalten wird. Wenn Sie nur das Shift-Verhalten und nicht auch das Lock-If-Two-Pressed-Verhalten möchten, können Sie eine einfachere Erklärung abgeben (aus derselben Datei):
// The right Alt key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "ralt_switch" {
key <RALT> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift ]
};
include "level5(modifier_mapping)"
};
Hinzufügen zusätzlicher Ebenen zu einem Layout
Xkb-Layouts sind ziemlich modular. Sie können umfassen bestehenden Layouts und sie verändern. So können wir ein vorhandenes Layout mit weniger als 5 Ebenen auswählen und einige Ebenen hinzufügen.
Sie können neue Layouts erstellen, indem Sie die Datei mit Ihren Layouts in kopieren
/usr/share/X11/xkb/symbols/
oder wo immer Ihre Xkb-Tools nach Layouts suchen. Dies erfordert jedoch das sudo-Privileg, sodass dies nicht die beste Lösung ist. Alternativ können Sie die Verzeichnisstruktur von kopieren xkb/
und Ihre Layouts in das entsprechende Verzeichnis unter stellen xkb/
, nämlich
symbols/
. Angenommen, Sie haben eine Datei erstellt xkb-tree/symbols/my-layouts
. Um in dieser Datei definierte Layouts zu verwenden, können Sie die -print
Option von verwenden setxkbmap
und dann die Ausgabe weiterleiten xkbcomp
. Dieses Wrapper-Skript verwendet die Layouts als Eingabe:
#!/bin/sh
# `-option ""` resets all options.
setxkbmap -option "" -layout "$1" \
-print |
xkbcomp -I"<path-to-project>/xkb-tree" - "$DISPLAY"
In Bezug auf die Datei mit dem Layout möchten wir beispielsweise das Layout "US international" erweitern, das vier Ebenen verwendet. Zunächst richten wir die Shift-Tasten der Ebenen 3 und 5 auf dieselbe Weise ein wie Neo:
partial alphanumeric_keys
xkb_symbols "mine" {
// US international
include "us(intl)"
// Set up level 3 modifiers.
include "level3(modifier_mapping)"
include "level3(bksl_switch)"
include "level3(caps_switch)"
// Set up level 5 modifiers.
include "level5(modifier_mapping)"
include "level5(lsgt_switch)"
include "level5(ralt_switch)"
};
Jetzt wollen wir einige zusätzliche Zeichen hinzufügen. Verwenden wir nur die ersten vier Tasten von QWERTY-Layouts als Beispiel. Diese Tasten sind Q
auf R
, das entsprechen <AD01>
zu <AD04>
. Zuerst müssen wir die Tasten für die Verwendung von bis zu acht Ebenen einrichten:
key.type[Group1] = "EIGHT_LEVEL";
Um sie nicht neu zu definieren, ordnen wir sie den ersten vier Ebenen zu NoSymbol
. Dann fügen wir zwei Ebenen hinzu. Auf Stufe 5 fügen wir die Pfeile ←↓↑→
(† 2) hinzu. In Level 6 fügen wir die Richtungstasten hinzu. Unser Layout sieht dann so aus:
partial alphanumeric_keys
xkb_symbols "mine" {
// US international
include "us(intl)"
// Set up level 3 modifiers.
include "level3(modifier_mapping)"
include "level3(bksl_switch)"
include "level3(caps_switch)"
// Set up level 5 modifiers.
include "level5(modifier_mapping)"
include "level5(lsgt_switch)"
include "level5(ralt_switch)"
// Make the following keys capable of using eight levels.
key.type[Group1] = "EIGHT_LEVEL";
key <AD01> { [
NoSymbol, NoSymbol, NoSymbol, NoSymbol,
leftarrow, Left
] };
key <AD02> { [
NoSymbol, NoSymbol, NoSymbol, NoSymbol,
downarrow, Down
] };
key <AD03> { [
NoSymbol, NoSymbol, NoSymbol, NoSymbol,
uparrow, Up
] };
key <AD04> { [
NoSymbol, NoSymbol, NoSymbol, NoSymbol,
rightarrow, Right
] };
};
Um es zu benutzen, können wir das Wrapper-Skript benutzen, das wir gemacht haben:
./setxkbmap-wrapper "my-layouts(mine)"
† 1: Neo ist de(neo)
in Xkb; setxkbmap "de(neo)"
.
† 2: Um die von Xkb verwendeten symbolischen Namen zu finden, suchen Sie nach einer Datei mit dem Namen keysymdef.h
. Es sollte sich unter einem Verzeichnis mit dem Namen befinden X11/
. Sie können auch Unicode-Namen verwenden, z. B. U2192
für U + 2192.
Nun, nach ein bisschen Graben:
(1) Die Taste für die Auswahl der 5. Ebene erledigt einige seltsame Dinge (in Bezug auf einige französische Layouts), die für das, was ich tun wollte, nicht relevant sind. Grundsätzlich wird festgelegt, welcher Schlüssel als ISO_Level5_Shift fungieren soll. ISO_Level5_Shift wird in einigen undurchsichtigen Layouts verwendet. Diese Antwort basiert auf der Anzahl der Ergebnisse, die Google bei der Suche nach "ISO_Level5_Shift" und auf diesen Links gibt .
(2) Es kann nicht verwendet werden, um 6 Symbole aus einem physischen Schlüssel zu erhalten. Eine Möglichkeit, dies zu erreichen, ist die Verwendung der Datei .xmodmap, die sich im Verzeichnis $ HOME befindet.
Zuerst Befehl
gibt an, welche Tastensymbole als verschiedene Modifikatoren fungieren. Auf meinem System war es wie folgt:
mod3 muss eingerichtet werden, um 6 Symbole mit einer Taste zu verwenden. Dies muss in der .xmodmap-Datei abgelegt werden:
Dann gab mir xmodmap -pm:
Wobei der Schlüsselcode 94 der Schlüssel ist, den ich als Mod3 gewählt habe. Mit dem Kommandozeilen-Tool xev können Sie Schlüsselcodes für verschiedene physische Schlüssel finden (führen Sie es einfach aus und drücken Sie verschiedene Tasten, die Schlüsselcodes werden angezeigt).
Dann, wenn ich in .xmodmap-Datei platziere
oder laufe
Ich bekomme sechs verschiedene Symbole aus einer Taste, wenn ich altgr, shift und keycode 94 benutze (es ist eine nutzlose Taste neben left shift in meinem physischen Layout).
UPDATE: Wenn Sie nur fünf Symbole benötigen, ist es praktisch, es so einzurichten:
Es kommt gelegentlich vor, dass ich 4 statt 3 bekomme.
quelle