Wie kann ich die Feststelltaste wieder aktivieren?

12

Ich richte derzeit mein Standardtastaturlayout wie folgt ein:

setxkbmap -layout us -variant dvorak -option ctrl:nocaps,[...]

Es deaktiviert die Feststelltaste und macht sie zu einer zusätzlichen Strg-Taste, zusammen mit einer Vielzahl anderer Optionen.

Ich möchte Folgendes tun, um das Tastaturlayout zu wechseln:

setxkbmap -layout us -variant dvorak-l -option ctrl:swapcaps

Der Feststelltaste wird jedoch nicht wieder aktiviert. Soweit ich sehen kann, bleiben sowohl der linke Steuerschlüssel als auch die Feststelltaste als Steuerschlüssel.

Ich weiß, dass ich die gesamte Optionsliste löschen kann, aber im Interesse der Wartbarkeit möchte ich die Optionen lieber nicht kopieren. Wie aktiviere ich die Feststelltaste wieder?

Update: Beim Betrachten von Tastendrücken mit xev (1) wird angezeigt, dass Strg: Nocaps Control_Lfür beide Tasten ein gibt, und Strg: Swapcaps "stellt" die Feststelltaste wieder her (Drücken der Taste gibt Caps_Lock). Die Feststelltaste leuchtet jedoch nicht auf und funktioniert auch nicht.

Ein Blick auf die xkeyboard-config/symbols/ctrlDatei in X.org-Quellen weist auf das Problem hin:

xkb_symbols "nocaps" {
    replace key <CAPS>  {  [ Control_L, Control_L ] };
    modifier_map  Control { <CAPS>, <LCTL> };
};
xkb_symbols "swapcaps" {
    replace key <CAPS>  {  [ Control_L ] };
    replace key <LCTL>  {  [ Caps_Lock ] };
};

Der letzteren Option fehlt eine modifier_map-Zeile, was auch immer das tut

hhaamu
quelle
Ich vermute, jeder, der versucht hat, mir zu helfen, hat seine Tastaturen auf dvorak geklebt = (
hhaamu
4
X ist jetzt so alt und komplex, dass nicht viele Menschen die verschiedenen internen Mechanismen wirklich verstehen. Es gibt sogar Abschnitte auf der Manpage, in denen steht (und ich zitiere): " Niemand möchte sagen, wie das funktioniert. Vielleicht weiß niemand ... ". Ich bin daran interessiert, auch eine Antwort auf diese Frage zu sehen, aber es kann sein, dass niemand weiß ...
jw013

Antworten:

14

Die folgenden Befehle sollten funktionieren:

xmodmap -e 'keycode 0x42 = Caps_Lock'

oder

setxkbmap -option

Die obigen Befehle funktionieren einwandfrei, um das Standardverhalten wiederherzustellen, das ich zum Glück kaum jemals brauche.

Normalerweise ordne ich die Feststelltaste mit dem folgenden Befehl Control zu (zum Glück unterstützt VI / VIM STRG-C anstelle von ESC):

setxkbmap -option ctrl:nocaps -layout gb
Alex
quelle
Die "setxkbmap-Option" zum Löschen der Einstellungen ist genau das, wonach ich gesucht habe. Ich habe immer wieder versucht, mein Verhalten zu ändern, aber es wurden immer wieder widersprüchliche Elemente an die Optionsliste angehängt.
m0j0
2

Versuchen setxkbmap -option -layout us -variant dvorak-l -option ctrl:swapcaps

Aus der Manpage:

[...] If you want to
replace all previously specified options, use the -option  flag
with an empty argument first.

Ironie ist, dass hier -option ctrl:swapcapstatsächlich überschreibt -option ctrl:nocaps- ich denke, das Verhalten hat sich geändert.

Bearbeiten: Wie der OP sagte, möchte er vermeiden , die Optionen zu löschen (wie oben beschrieben).

/usr/share/X11/xkb/rules/xorg.lstzeigt die Option ctrl:aa_ctrl(Steuerung unten links), die die Feststelltaste nach nocapshier zurückzusetzen scheint .

Ich denke, es ist einen Versuch wert, und Sie können auch in der Liste ( grep ctrl\:) nachsehen, ob noch etwas funktioniert, falls dies nicht der Fall ist.

Wenn es dafür keine Option gibt, besteht die Lösung wahrscheinlich darin, die aktuelle Keymap zu hacken, indem Sie die Feststelltaste erneut mit der Feststelltaste verknüpfen (aber ich habe keine Erfahrung damit, außer zu glauben, dass es ein Tool gibt, mit dem Sie dies tun können das mit einem Einzeiler).

njsg
quelle
Das löscht zwar die Optionsliste, aber ich möchte die nicht mit Caps verbundenen Optionen (wie in der Frage angegeben) wie das Verfassen von Schlüsseln beibehalten.
Hhaamu
Oh, sorry, ich habe die Frage falsch verstanden. Ich kann nicht sicher sein, ob dies funktionieren wird (wie ich bereits sagte, swapcapsaktiviert die Feststelltaste hier tatsächlich wieder), aber /usr/share/X11/xkb/rules/xorg.lstich sehe, dass es die Option ctrl:aa_ctrl(Steuerung unten links) gibt, die die Feststelltaste nach nocapshier zurückzusetzen scheint .
NJSG
Ich denke, das magische Programm ist, xmodmapaber ich bin nicht ganz sicher, wie ich es verwenden soll
hhaamu
0

Es gibt eine Option "caps: capslock" (die dem Hinzufügen von "+ capslock (capslock)" zu xkb_symbols entspricht), die den Capslock aktiviert.

Diese Option (möglicherweise alle Großbuchstaben: xxxxx?) Wird jedoch vor den vorhandenen Großbuchstaben ctrl: xxxxx hinzugefügt. as ctrl: swapcaps definiert die Feststelltaste neu, diese Option hat keine Auswirkung.

Sie müssen also unbedingt alle Optionen entfernen und die gewünschten Optionen eingeben. Die Art und Weise, wie Optionen existieren, soll die Aktion einer vorherigen nicht rückgängig machen. Wenn Sie widersprüchliche Optionen haben (z. B. zwei (oder mehr), die denselben Schlüssel neu definieren), können Sie deren Reihenfolge nicht definieren.

Pablo Saratxaga
quelle