Login
Login-Name Passwort


 
Newsletter
Werbung

Di, 22. Juni 2010, 23:19

Zauberspiele mit XModMap

Es kommt des Öfteren vor, dass man ein Zeichen eintippen will, ohne dass es eine entsprechende Taste gibt. In der Regel bedient man sich einer Zeichentabelle wie bspw. gucharmap1, eine funktionale, aber langsame Variante, vor allem, wenn man gewisse Zeichen oft eingibt. Hier kommt XModMap ins Spiel, ein Kommandozeilenwerkzeug zum Ändern der Tastaturbelegung.

Als erstes holen wir uns die Liste aller Modifikatoren (Sondertasten (Alt, Meta, AltGr, Super, Hyper, Compose, Steuerung & Co.), die nur in Verbindung mit anderen Tasten sinnvoll sind):

xmodmap -pm

Die Ausgabe entspricht in etwa dieser:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses): 
shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69) 
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3
mod4        Multi_key (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

Eine Tastatur hat vier Level:

  • Level 1 erreicht man, indem man einfach eine Taste drückt
  • Level 2 erreicht man, indem man zusätzlich Shift drückt
  • Level 3 erreicht man, indem man zusätzlich ISO_Level3_Shift drückt (i. d. R. AltGr)
  • Level 4 erreicht man, indem man zusätzlich Shift und ISO_Level3_Shift drückt

Da die Level 5 – 8 standardmäßig nicht erreichbar sind und daher äußerst selten genutzt werden, werden diese im Artikel nicht weiter erwähnt, weiterführende Informationen hierzu findet man hier.

So erklärt sich auch die Ausgabe von XModMap:

  • 1. Spalte: Die Taste auf der Tastatur
  • 2. Spalte: Symbol auf Level 1
  • 3. Spalte: Symbol auf Level 2
  • 4. Spalte: Symbol auf Level 3
  • 5. Spalte: Symbol auf Level 4

Logischerweise müssen nicht alle Level belegt sein.

Als nächstes lassen wir uns unsere aktuelle Konfiguration ausgeben:

xmodmap -pke

Auszug aus meiner Konfiguration:

keycode  19 = 0 equal 0 equal braceright degree braceright 
keycode  20 = ssharp question backslash U1E9E backslash U1E9E 
keycode  21 = dead_acute dead_grave dead_acute dead_grave dead_cedilla dead_ogonek dead_cedilla 
keycode  22 = BackSpace NoSymbol BackSpace NoSymbol BackSpace 
keycode  23 = Tab ISO_Left_Tab Tab ISO_Left_Tab Tab ISO_Left_Tab 
keycode  24 = q Q q Q at Greek_OMEGA at 
keycode  25 = w W w W lstroke Lstroke lstroke Lstroke

In der ersten Spalte steht die Taste, in den anderen deren Belegung; entweder ein Keycode (dezimal, bspw. keycode 25 (= w)), ein Keysym-name (alpha, bspw. keysym w) oder ein Keysym (hexadezimal bspw. keysym 0x0077 (= w)). Eine Liste der Keysym-Namen/Keysyms befindet sich in /usr/include/X11/keysymdef.h (oder online).

Die Konfiguration kann sowohl temporär als auch permanent gemacht werden. Als Beispiel wollen wir die Taste e dazu bringen, im 3. Level und im 4. ε zu erzeugen.

Temporäre Lösung:

xmodmap -e "keysym e = e E EuroSign Greek_epsilon EuroSign Greek_epsilon" 

(Wie oben erwähnt wird auf die Level 5 – 8 nicht weiter eingegangen, allerdings spricht meine Tastatur auf 3 und 4 nicht an, sondern auf 5 und 6, weshalb diese Kopien von 3 und 4 sind.)

Permanente Lösung:

$HOME/.Xmodmap öffnen oder erstellen und den Befehl (bis auf xmodmap -e) eintragen:

keysym e = e E Eurosign Greek_epsilon Eurosign Greek_epsilon

Die Datei lässt sich via

xmodmap $HOME/.Xmodmap

laden. GNOME bspw. fragt beim nächsten Sitzungsstart nach, ob die Datei jedesmal geladen werden soll oder nicht, was wir bestätigen.

Nun zu etwas praxisnäheren Beispielen.

Kommentare (Insgesamt: 7 || Alle anzeigen || Kommentieren )
Re[4]: Trademark und Copyright (Jasgaer, Fr, 25. Juni 2010)
Re[3]: Trademark und Copyright (Ich (™), Do, 24. Juni 2010)
Re[3]: Trademark und Copyright (AC, Do, 24. Juni 2010)
Re[2]: Trademark und Copyright (jjsa, Do, 24. Juni 2010)
Re[2]: Trademark und Copyright (Jasager, Do, 24. Juni 2010)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung