Ein paar Tips, Tricks, Konfigurationsdateien und Patches, um das Leben angenehmer zu gestalten
Ok... wo fang ich an... Ich bin hauptsächlich den Umgang mit Deutschen standard Wintel Tastaturen unter Linux und Windows gewohnt. Da haben sich etliche Handbewegungen recht tief in mein motorisches Langzeitgedächtnis gegraben. Und weil ich (trotz meines schönen neuen iBook) weiterhin jeden Tag mit diesen Dingern arbeite, wird sich daran auch so schnell nichts ändern.
Dabei ist natürlich klar, dass ein Schlepptop ein paar Einschränkungen bzgl. der Tastatur mit sich bringt, die sich nicht ändern lassen. Aber einige Dinge, die mich immer wieder aus dem Tipp-Takt brachten lassen sich ändern.
Viele Sonderzeichen, die ich in der Shell oder beim Programmieren oft brauche sind auf deutschen Wintel Tastaturen über eine ALT-GR Tastenkombination erreichbar. Auf dem iBook greife ich da meist ins Leere.
Ein eigenes Tastaturlayout.
Das bastelt man sich zunächst einmal (in Classic) mit dem guten alten ResEdit: Aus der Classic System-Datei kopiert man sich die Deutsche Tastaturbelegung aus der kchr Ressource in eine neue Datei, definiert einen neuen Namen (z.B. Deutsch-PC) und ändert fröhlich drauflos. Um besser zu sehen was man tut, stellt man am besten die Tastaturansicht auf nummer 203 - das ist die iBook Ansicht. Das Ergebnis speichert man dann z.B. als deutschPC-resedit.rsrc
Ich habe mir eins gebastelt, das sich in diesen
alt-Kombinationen
vom Deutschen standard iBook Layout unterscheidet. Die Zeichen, die dadurch
nicht mehr erreichbar sind, waren mir nicht so wichtig (ich hätte
sowiso nicht auswendig gewusst, wie ich sie eingebe...). Mit uControl kann ich dann nicht nur die grüne (alt), sondern auch die blaue (enter) Taste zur Eingabe dieser Kombinationen verwenden. |
Unter OSX.2 (10.2, oder jaguar) gehört das Ergebnis dann in das Verzeichnis Library/Keyboard Layouts/ im eigenen Homeverzeichnis. Laut diesem Atrikel sollte OS X eigentlich direkt mit diesem Layout im Ressource-Zweig der gespeicherten Datei arbeiten können - hat bei mir aber nicht geklappt. Also kopiert man den OS9 Ressource-Zweig in den Daten-Zweig einer neuen Datei - in der shell etwa so:
mkdir ~/Library/Keyboard\ Layouts cat deutschPC-resedit.rsrc/rsrc > ~/Library/Keyboard\ Layouts/deutschPC-data.rsrc |
Für OS X Versionen vor Jaguar ist das ganze etwas komplizierter.
Danach nur noch einmal neu anmelden, das neue Layout in der Systemsteuerung Landeseinstellungen unter Tastaturmenü aktivieren, schon fertig. ...zumindest für standard OSX Applikationen.
Wer noch viel mit Classic arbeitet, sollte sich die neu gebaute kchr Ressource auch in die System-Datei für Classic einbauen, damit nicht noch mehr Verwirrung auftritt...
Und natürlich hält sich XDarwin (der freie X-Windows Server für Max OS X) auch nicht dran. Der benutzt ein eigenes Tastatur-Belegungs Modell, das er (zumindest bei mir) beim Start von einer keymapping-Datei ableitet. Wie man die ändert, hab' ich noch nicht rausbekommen. Diese Tastaturbelegungen können aber mit dem Kommandozeilen-Tool xmodmap nach jedem Start des von XDarwin so geändert werden, dass sie dem oben gebauten Layout entsprechen. In meinem Beispiel:
xmodmap -e 'keycode 35 = ssharp question backslash dead_abovedot' xmodmap -e 'keycode 38 = plus asterisk asciitilde' xmodmap -e 'keycode 20 = q Q at guillemotright' xmodmap -e 'keycode 58 = less greater bar' xmodmap -e 'keycode 34 = 7 slash braceleft backslash' xmodmap -e 'keycode 37 = 0 equal braceright dead_macron' xmodmap -e 'keycode 36 = 8 parenleft bracketleft dead_tilde' xmodmap -e 'keycode 33 = 9 parenright bracketright periodcentered' |
Ich habe diese Befehle alle in meine .xinitrc aufgenommen, die beim Start von XDarwin normalerweise ausgeführt wird. Wer OroborOSX verwendet, muss ein bischen trixen...
Nachtrag: Mit Apples X11 seit beta 3 scheint das soweit behoben - der X Server verwendet das Aqua Tastaturlayout anscheinend ohne Probleme.
In Apples Entwicklungsabteilung sizten wohl einige Emacs-Fans. Nicht nur, dass man in der Shell die aktuelle Kommandozeile mit vielen Emacs-Tastenkürzeln bearbeiten kann (das waren nicht Apples Entwickler sondern die der freien tcsh bzw. bash) - auch in Textfeldern von Cocoa Applikationen klappen viele von ihnen dank InputManager automatisch. So Springt z.B. ctrl-a an den Anfang der Zeile, ctrl-e ans Ende, ctrl-k (kill) löscht bis ans Ende der Zeile, ctrl-d (delete) löscht das folgende Zeichen (für alle ohne echte delete Taste)...
Einfach mal in TextEdit oder ProjectBuilder ausprobieren und freuen.
Unter Linux (bzw. in Emacs auf allen Plattformen) habe ich mich aber auch an ein weiteres Set von Tastaturkürzeln gewöhnt: sogenannte Meta-key Kombinatioen. Besonders hilfreich sind z.B.
Um diese Kommandos zu aktivieren muss man entweder seinen Meta-key (wie bei shift oder command) gedrückt halten, während man die andere Taste drückt, oder man kann erst ESC drücken und loslassen, und danach die andere Taste.
Die zweite Variante klappt für Kommandozeilen Programme eigentlich immer und überall - macht aber (wegen meines oben angesprochenen motorischen Langzeitgedächtnisses) nicht so viel Spass. Für die erste braucht man hingegen einen Meta-Key. Und dann bitte auch noch einen, den ich - wie ich es gewohnt bin - mit dem linken Daumen drücken kann!
Terminal.app bietet zwar die Option, alt als Meta zu verwenden, das hilft aber eigentlich nur denen, die mit einem US Tastaturlayout arbeiten. Mit der normalen Deutschen Tastaturbelegung (oder auch mit meiner oben gebastelten Deutsch-PC) kann man sonst solche essentiellen Zeichen wie | (pipe) oder all die anderen oben umdefinierten nicht tippen. Und ohne pipe macht die Shell nicht wirklich Spass...
Also habe ich einen Patch zu den Quelltexten von uControl gebastelt, der einem erlaubt, eine Taste zur falschen Meta Taste zu machen: so lange diese Taste gedrückt ist, wird vor jedem anderen Tastendruck ein ESC eingeschummelt. Ich habe diesen Patch an Shane Celis, den Maintainer von uControl weitergeschickt und hoffe, das er in der nächsten Version enthalten sein wird.
Damit kann man jetzt schon mal in der Shell, in Emacs und in vielen anderen Unix-Tools so arbeiten, als hätte man einen echten Meta-key. Ich habe die original alt Taste zu Meta umfunktioniert, die famose enter Taste erzeugt mir die alt-Kombinationen und Terminal.app weiss offiziell nichts von Meta sondern schickt mit enter (kommt als alt an) brav die Sonderzeichen.
So weit, so gut... aber was ist nun mit den Cocoa Applikationen? bleiben die bei den ctrl-Kommandos?
Tata!! Auftritt: KeyBindings und NSInputServer
Man baue sich ein KeyBindingDictionary und lege es unter ~/Library/KeyBindings/DefaultKeyBinding.dict ab:
/* ~/Library/KeyBindings/DefaultKeyBinding.dict */ { "\033" = { /* ESC */ "f" = "moveWordForward:"; "b" = "moveWordBackward:"; "<" = "moveToBeginningOfDocument:"; ">" = "moveToEndOfDocument:"; "d" = "deleteWordForward:"; "c" = "capitalizeWord:"; "u" = "uppercaseWord:"; "l" = "lowercaseWord:"; "^h" = "deleteWordBackward:"; "\010" = "deleteWordBackward:"; /* ESC backspace */ "\177" = "deleteWordBackward:"; /* ESC delete */ }; "^x" = { "^g" = "abort:"; "x" = "swapWithMark:"; }; } |
Autor:
Heiko Hellweg,
geändert: Mai 2003