Entschuldigen Sie zunächst meine Unkenntnis von X und XKB. Ich habe versucht, eine Lösung zusammen zu hacken, in der Hoffnung, das zu erreichen, was ich will, ohne ein detailliertes Verständnis dafür zu benötigen.
Ich versuche, unter Ubuntu 12.04 eine XKB-Tastaturzuordnung zu erstellen, mit der ich festlegen kann, welche der beiden Umschalttasten den Level2-Modifikator darstellt. Insbesondere sollte die 4Taste nur dann ein a erzeugen, $
wenn die Rechtsverschiebung gehalten wird, nicht die linke.
Meine bisherige Lektüre:
- http://www.charvolant.org/~doug/xkb/html/node5.html
- http://people.uleth.ca/~daniel.odonnell/Blog/custom-keyboard-in-linuxx11
- http://www.x.org/releases/X11R7.5/doc/input/XKB-Enhancing.html
- Viel suchen!
Ich habe versucht, einen benutzerdefinierten Typ zu definieren und ihn dann in einer Symbolzuordnung explizit zu referenzieren:
/usr/share/X11/xkb/types/mbfisher
::
default xkb_types "mbfisher" {
type "RIGHT_SHIFT" {
modifiers = None+Shift_R;
map[None] = Level1;
map[Shift_R] = Level2;
};
}
/usr/share/X11/xkb/symbols/mbfisher
::
default
partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "mbfisher";
key <AE04> {
type= "RIGHT_SHIFT",
symbols[Group1]= [ 4, dollar ]
};
};
Ich wähle dann die Karte mit der Ubuntu Keyboard Layout GUI aus.
Dadurch wird natürlich die alphanumerische Tastatur außer der 4Taste deaktiviert , aber das Dollarzeichen kann weiterhin mit beiden Umschalttasten eingegeben werden.
Ich bin mir bewusst, dass ich eine massive Frage mit vielen nutzlosen Informationen schreibe, also höre ich hier auf. Bitte fragen Sie nach etwas, was ich verpasst habe.
Irgendwelche Ideen?
# xmodmap -verbose -e "clear shift" ! 1: clear shift clear shift ! ! executing work queue ! clear shift
Hier ist, was endlich funktioniert hat! Ich habe
xmodmap
eine~/.Xmodmap
Datei anstelle einer xkb-Konfiguration verwendet.~/.Xmodmap
::Die 2 kommentierten Zeilen (mit starren
!
) zeigen die Spaltenüberschriften vor und nach meinen Änderungen. Dadurch konnte ich Spalte 2 als Shift_L und Spalte 3 als Shift_R angeben, da ich shift_R als Mode_switch zugeordnet habe.Die Änderungen werden durch Ausführen von:
setxkbmap us
xmodmap
Legt die Standard-US-Karte so fest, dass Sie von einer sauberen Tafel aus arbeiten, und hängt die benutzerdefinierten Änderungen daran an.Wenn das umgesetzt
!
,@
,#
,$
und%
Zeichen können nur mit der rechten Shift - Taste eingegeben werden, und^
,&
,*
,(
und)
können nur mit der linken Shift - Taste eingegeben werden.Ich kann jetzt fortfahren, indem ich alle Tasten auf der linken Seite der Tastatur zuordne, die nur durch die rechte Umschalttaste (dh die aplhabetischen Zeichen und ihre Änderungen in Großbuchstaben) geändert werden sollen, und umgekehrt. Diese Lösung bedeutet, dass ich nur die linke Seite neu zuordnen muss.
Weitere nützliche Links auf dem Weg:
Vielen Dank an @Trudbert, dass ich den größten Teil der Antwort erhalten habe!
quelle