xkb - Remapped Modifikatoren funktionieren weiterhin als Modifikatoren

1149
lydell

Ich verwende xkb, um mein eigenes Tastaturlayout zu erstellen. Ich habe jedoch ein kleines Problem.

key <AE04> {[ Shift_L ]}; key <AE07> {[ Shift_R ]}; key <LFSH> {[ comma, semicolon, bar ]}; key <RTSH> {[ period, colon, period ]}; modifier_map Shift { <AE04>, <AE07> }; 

Das Obige verschiebt die Umschalttasten zu anderen Tasten. Damit die neuen Umschalttasten beim Drücken tatsächlich etwas bewirken, musste ich die modifier_mapZeile hinzufügen . Der Code fügt auch normale Zeichen auf die alten Umschalttasten ein. So weit, ist es gut.

Das Problem ist, dass ich die alte linke Umschalttaste gedrückt halte und ein Zeichen drücke - sagen wir "a" - ich bekomme "A". So funktionieren die Schlüssel sowohl als Komma - Taste und als Shift - Taste. Letzteres ist nicht erwünscht. Das gleiche passiert mit der rechten alten Shift-Taste. Tatsächlich passiert es auch mit Kontrolle und Alt.

Wie löse ich das? Es fühlt sich an, als ob ich modifier_unmapetwas brauche oder so.

3

1 Antwort auf die Frage

2
lydell

Nach dem Laufen wurde setxkbmap -printmir klar, dass dies pcin der Symbolliste enthalten war. Diese Symboldatei richtet die regulären Modifizierer ein, was von mir nicht gewünscht wird.

Zuvor hatte ich mein eigenes Layout dem /usr/share/X11/xkb/symbolsVerzeichnis und der /usr/share/X11/xkb/rules/evdev.xmlDatei hinzugefügt . Dadurch wurde mein Layout in der GUI angezeigt, um das Tastaturlayout auszuwählen.

Eine Lösung besteht darin, stattdessen ein Tastaturlayout von Grund auf zu erstellen. Eine, die die Datei nicht enthält pc. Es gibt jedoch eine Menge Standard-Tastatursachen pc, die ich brauche. Also habe ich diese Datei von oben bis unten durchgelesen und die Dinge herausgesucht, die ich brauchte.

Kurz gesagt, das Erstellen eines Layouts von Grund auf bedeutet im Wesentlichen:

  1. Kopieren Sie die Ausgabe von setxkbmap -printin eine Datei.
  2. Diese Datei enthält nur andere Dateien. Sehen Sie sich die Liste an, um zu sehen, was Sie wiederverwenden können. Für mich bedeutete es, durch pcden Namen meiner eigenen Datei zu ersetzen .
  3. Erstellen Sie bei Bedarf neue Dateien.
  4. Starten Sie Ihr neues Layout mit xkbcomp -I$HOME/additional-include-folder file-from-step-one.

Ich habe dies (ausführlicher) aus diesem ausgezeichneten Leitfaden gelernt: http://hack.org/mc/writings/xkb.html .