Home / LinuxUser / 2002 / 06 / The Answer Girl

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

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

xev

-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:  ""

Abbildung 6: Ins schwarze Feld mit dem Cursor und Taste drücken

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 …

Abbildung 7: .Xmodmaps selbst erstellen mit xkeycaps

Kasten 1:

.Xmodmap

grafisch 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.

Abbildung 8: Bei der Tastenbelegung sollte man sich auf darstellbare Zeichen beschränken

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/

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...