Tasten-Wirbel
The Answer Girl
Neue Heimat für die Klammern
Bei der Neubelegung der Windows-Tasten müssen wir allerdings ein wenig kleinere Brötchen backen als unter KDE: Menüs zu öffnen, virtuelle Desktops zu wechseln und ähnliches sind Sache des verwendeten Window-Managers. Dem X-Server können wir allerdings sagen, dass die [Windows]-Tasten die auf deutschen Tastaturen erst in Kombination mit [AltGr] erreichbaren geschweiften Klammern ausgeben sollen, während [Umschalt-Windows] für die jeweilige eckige Klammer sorgt.
Dazu brauchen wir zunächst einmal den Keycode der [Windows]-Tasten. Mit dem unscheinbaren Programm xev (Abbildung 6), auf das die xmodmap-Manpage verweist, geht das recht einfach, sofern man sich nicht davon verwirren lässt, dass das Programm im X-Terminal, aus dem heraus es aufgerufen wurde, nicht nur Tastatur-, sondern auch Maus-Ereignisse ungerührt anzeigt. Listing 5 zeigt die Beispielausgabe für Drücken (KeyPress event) und Loslassen (KeyRelease event) der linken [Windows]-Taste (keycode 115) und ihrer rechten Schwester (keycode 116), wenn sich der Mausfokus innerhalb des schwarzen Quadrats im xev-Fenster befindet.
Listing 5
-Ausgabe der Windows-Tasten
KeyPress event, serial 28, synthetic NO, window 0xe00001,
root 0x2c, subw 0xe00002, time 1060529679, (30,37), root:(34,57),
state 0x0, keycode 115 (keysym 0xffe7, Meta_L), same_screen YES,
XLookupString gives 0 characters: ""
KeyRelease event, serial 28, synthetic NO, window 0xe00001,
root 0x2c, subw 0xe00002, time 1060529913, (30,37), root:(34,57),
state 0x40, keycode 115 (keysym 0xffe7, Meta_L), same_screen YES,
XLookupString gives 0 characters: ""
KeyPress event, serial 28, synthetic NO, window 0xe00001,
root 0x2c, subw 0xe00002, time 1060531499, (30,37), root:(34,57),
state 0x0, keycode 116 (keysym 0xff20, Multi_key), same_screen YES,
XLookupString gives 0 characters: ""
KeyRelease event, serial 28, synthetic NO, window 0xe00001,
root 0x2c, subw 0xe00002, time 1060531733, (30,37), root:(34,57),
state 0x0, keycode 116 (keysym 0xff20, Multi_key), same_screen YES,
XLookupString gives 0 characters: ""
Jetzt müssen wir nur noch die Bezeichnung für die Klammern herausfinden. Da diese schon auf [AltGr-7] ({), [AltGr-8] ([), [AltGr-9] (]) und [AltGr-0] (}) liegen, sollte das von xmodmap zu erfahren sein. xmodmap -pke | less (-pke steht für "print keymap expression") heißt das Zauberwort:
keycode 16 = 7 slash braceleft seveneighths keycode 17 = 8 parenleft bracketleft trademark keycode 18 = 9 parenright bracketright plusminus keycode 19 = 0 equal braceright degre
Das sieht so ähnlich aus wie die Map-Datei für die Konsole und zeigt netterweise gleich an, wie man einem Keycode eine Belegung unter X zuordnet. Der jeweils dritte Eintrag rechts vom Gleichheitszeichen dürfte dem Analogieprinzip zufolge der Name der gesuchten Klammer ("brace" – geschweifte Klammer, "bracket" – eckige Klammer) sein. Mit
xmodmap -e "keycode 115 = braceleft bracketleft" xmodmap -e "keycode 116 = braceright bracketright"
sollten wir damit das Ziel unserer Wünsche erreicht haben.
Haltbar machen
All diese xmodmap-Kommandos kann man natürlich in die persönliche X-Startup-Datei ~/.xinitrc und/oder ~/.xsession eintragen. Doch die in der Manpage angegebene Syntax zu xmodmap …
xmodmap [-options …] [filename]
… legt nahe, die gesamten Tastenbelegungen in einer Datei zu sammeln (Listing 6). Die Manpage schlägt ~/.xmodmaprc vor, Distributionen wie SuSE kümmern sich bereits darum, dass .Xmodmap im Home-Verzeichnis beim X-Starten mit xmodmap eingelesen wird. Beim genauen Studium der Manpage erfährt man so nebenbei, dass Kommentare nicht mit #, sondern mit ! eingeleitet werden.
Listing 6
Persönliche
~/.Xmodmap! Caps_Lock soll nicht mehr sperren
remove lock = Caps_Lock
! … sondern stattdessen als weitere Umschalttaste wirken
add shift = Caps_Lock
! linke Windowstaste = {, plus [Umschalt] = [
keycode 115 = braceleft bracketleft
! rechte Windowstaste = }, plus [Umschalt] = ]
keycode 116 = braceright bracketright
Ein Eintrag xmodmap ~/.Xmodmap in ~/xinitrc (so nicht schon distributonsseitig vorhanden) sorgt nun dafür, dass beim Starten von X mit startx die entsprechenden Keymappings geladen werden. Wer sich mit grafischem Login anmeldet, setzt diesen Befehl in die ~/.xsession.
Doch bei aller Freude über die neugewonnenen Klammer-Tasten stellen KDE-Benutzer/innen fest, dass es für KDE nun praktisch keine [Windows]-Tasten mehr gibt – das sind jetzt Geschweifte-Klammer-Tasten, und ob man ausgerechnet daraus einen Hotkey machen will, ist fraglich …
Kasten 1:
.Xmodmapgrafisch erstellen
Sich mühsam mit xmodmap dem Ziel der "generischen" Tastenbelegung unter X zu nähern, ist nicht Jedermanns Sache. Wer Glück hat, findet daher auf seinem System bereits ein Programm namens xkeycaps vorinstalliert, das die Geschichte ein wenig grafischer macht. Wenn nicht, kann man es von [3] oder der Heft-CD herunterladen, mit tar -xzvf xkeycaps-2.46.tar.Z auspacken und mit cd xkeycaps-2.46 ins Quellverzeichnis wechseln.
Da das Archiv weder ein configure-Skript, noch ein Makefile, lediglich ein Imakefile enthält, erweist sich ein Blick in die README-Datei als nützlich: mit xmkmf erstellt man aus letzterem ein Makefile, das sich dann mit make kompilieren lässt. Die Option -n zu make (die es übrigens in derselben Bedeutung auch für xmodmap gibt) tut nur so als ob, sodass wir auch ohne root-Rechte vorab prüfen können, was im Falle einer Installation geschieht:
pjung@chekov:~/software/xkeycaps-2.46$ make -n install if [ -d /usr/X11R6/bin ]; then set +x; \ else (set -x; mkdir -p /usr/X11R6/bin); fi install -c -s xkeycaps /usr/X11R6/bin/xkeycaps echo "install in . done"
Wollen wir das neue Binary xkeycaps tatsächlich in das (bei Bedarf neu zu erzeugende) Verzeichnis /usr/X11R6/bin kopieren, darf root den Installationsbefehl make install geben (und für die Installation der Manpage ein make install.man hintansetzen).
Der Programmaufruf xkeycaps & unter X lässt ein virtuelles Keyboard erscheinen (Abbildung 7), das es mit dem "Select Keyboard"-Dialog zunächst näher einzugrenzen gilt. Das Miniatur-Tastatur-Abbild unterhalb der Spalte Keyboards: hilft beim Vergleich; auf gängige deutsche PC-Tastaturen mit [Windows]-Tasten passt der Eintrag 105 key, wide delete, tall Enter, für den es in der Layouts:-Spalte einen passenden Eintrag XFree86; German gibt. Die Auswahl gilt es, mit ok zu bestätigen; das Tastatur-Modell passt sich entsprechend an.
Klickt man nun mit der rechten Maustaste auf eine der abgebildeten Tasten, kann man aus dem Kontext-Menü beispielsweise Edit KeySyms of Key wählen, um sich aus einem neuen Dialog die passende Belegung herauszusuchen. Dabei ist es nützlich zu wissen, dass die mittlere Maustaste die angedeuteten Scrollbars im Dialog aus Abbildung 8 schnell bewegt. Die Angabe zu KeySym 1 legt die Belegung für einen Einzeltastendruck fest; KeySym 2 die, bei der zusätzlich die [Umschalt]-Taste niedergehalten wird; bei KeySym 3 ist es die [AltGr]-Taste. Bei der Auswahl sollten Sie beachten, dass sich nur Zeichen ausgeben lassen, zu denen Sie die entsprechenden Schriften installiert haben: Zeichen aus dem Character Set Latin 1 sind in deutschen Gefilden sichere Kandidaten, während kyrillische oder arabische Zeichen bei mangelnden Schriften nur "komische Ersatzzeichen" hervorrufen.
Sind Sie mit der konfigurierten Belegung zufrieden, schreibt ein Druck auf Write Output (Abbildung 7 obere linke Ecke) die gesamte Belegung oder nur die geänderten Tastenzuweisungen (Changed Keys) in eine Datei namens ~/.xmodmap-rechnername, die Sie aus den X-Initialisierungsdateien mit xmodmap laden können.
Glossar
anschreit
Ob in E-Mails oder im Chat – Textpassagen in GROSSBUCHSTABEN fassen die meisten Menschen intuitiv als visuelles Pendant zum Schreien auf.
Keyboard-Layout
Die generelle Anordnung der Tasten auf der Tastatur. Bei amerikanischen, skandinavischen, polnischen, … Tastaturen beginnt die oberste Buchstabenreihe mit den Tasten [Q],[W],[E],[R],[T] und [Y] (daher der Name "qwerty" für dieses Layout), bei deutschen, aber zum Beispiel auch slowenischen Tastaturen sind an diesen Stellen hingegen die Tasten [Q],[W],[E],[R],[T] und [Z] ("qwerz") angeordnet.
case
Will man den Satz "Wenn der Inhalt der Variablen 1 'start' oder 'reload' ist, tue dies, wenn 'stop' drinsteht, das" in die Syntax der Bash übersetzen, sieht das so aus:
Standard-Runlevel
Der Betriebszustand (Runlevel), in den ein Linux-Rechner per Default bootet. Er wird von der Ziffer in der Zeile "id:5:initdefault:" der Datei /etc/inittab definiert. Runlevel 5 im Beispiel ist bei vielen Distributionen ein Betriebszustand, in dem mehrere User gleichzeitig arbeiten (Multiuser) können, ein X-Server automatisch gestartet wird und Networking möglich ist. In Runlevel 0 fährt der Rechner herunter, in Runlevel 6 rebootet er, Runlevel 1, der "Single User Mode" ist ein Wartungszustand, in dem nur die notwendigsten Dienste laufen und der einzige mögliche User root noch etwas retten kann. Die übrigen Runlevel sind von Distribution zu Distribution verschieden und natürlich individuell definierbar.
Link
Ein zweiter Name für eine bereits vorhandene Datei. Symbolische Links setzt man mit dem Kommando ln -s datei zweitname.
grep -w
Dieses Kommando sucht den nachstehenden Suchbegriff (im Beispiel X) aus einem aus einer Pipe (|) kommenden Datenstrom (oder einer als Argument angegebenen Datei) heraus, sofern er darin als alleinstehendes Wort vorkommt.
Infos
[1] Patricia Jung: "Sprung ins kalte Wasser", LinuxUser 08/2001, S. 84 ff., letzter Abschnitt
[2] Patricia Jung: "Kommandozeilen-Jongleur", LinuxUser 02/2002, S. 80 ff.
[3] xkeycaps: http://www.jwz.org/xkeycaps/



