instant-thinking.de

just enough to get you started and leave you confused

CAPS LOCK remappen unter OS X – Hyper, Hyper

| Kommentare

Es gibt sie auf jeder handelsüblichen Tastatur unter der Sonne: Die Caps Lock Taste – Eine Geißel der modernen Menschheit.

Im besten Falle wird sie einfach gar nicht benutzt, im schlimmsten zum augenzerfetztenden RUMSCHREIEN in Großbuchstaben. Die Sinnhaftigkeit dieses links außen in der Homerow der Tastatur sitzenden Reliktes aus den Zeiten mechanischer Schreibmaschinen ist also mit zweifelhaft noch sehr geschönt beschrieben. Ein geradezu schreiender1 Euphemismus.

Glücklicherweise lässt sich unter so gut wie jedem OS Abhilfe schaffen. Es existieren auch Initiativen wie CapsOff, die fordern, die Taste grundsätzlich durch eine -Taste zu ersetzen. Es gibt sogar Leute, die einfach einen Schraubendreher bemühen und die Taste physikalisch entfernen.

Kann man ja auch alles machen.

Hier steht allerdings nun, wie ich die Schreitaste in ein so dermaßen sinnvolles Werkzeug verwandelt habe, dass Computer ohne dieses Feature für mich beizeiten kaputt erscheinen.

Serious geekery ahead. Click for more…

Caps Lock für vim User

Ich hatte meine Caps Lock Taste schon sehr lange auf Esc gemappt. Das macht für einen vim User auch sehr großen Sinn. Esc braucht man ständig, um aus dem Insert-Mode zurück in den Normal-Mode zu kommen. Jedes mal, wenn man eine Texteingabe abgeschlossen hat, die linke Hand aus der Homerow zu heben um an die Taste ganz oben links auf der Tastatur zu kommen ist halt nicht gerade praktisch.

Um also Esc in die Homerow der Tastatur zu verfrachten schaltet man Caps Lock erst einmal in den Tastatur-Systemeinstellungen von OS X komplett ab2. Die entsprechende Option findet sich hinter dem Button Sondertasten:

Hier ist es auch möglich, die Taste auf eine andere Modifikationstaste zu mappen. Nur Esc ist hier halt leider nicht dabei.

Zu diesem Zwecke nimmt man daher das merkwürdig benannte OS X Tool PCKeyboardHack und mappt dort den Keycode, den die Caps Lock Taste sendet, von der standardmäßigen 57 auf die Nummer 53. Eben genau den Keycode für Esc.

Bumm, Zack, Return. Schon fertig. Wenn man sich einmal an diese Config gewöhnt hat3, will man nie wieder zurück.

Aber es geht noch eine ganze Spur cooler…

Caps Lock als Hyper Key

Hyper Hyper
Is everybody on the floor?
We put some energy into this place!
I want to ask you something…
Are you ready for the sound of Scooter?

Scooter Hyper Hyper — … And the Beat Goes on! (1995)

Das Ding ist, dass ich sehr gerne so viel wie möglich über die Tastatur erledige. Shortcuts auf den Tasten sind schlicht um Größenordnungen schneller als mit der Maus durch Menüs zu jagen.

Persönliche, systemweite Shortcuts definieren zu können, ohne mit bestehenden Kombination von OS X oder den laufenden Programmen zu kollidieren ist dabei mit den gegebenen Modifikationstasten , , und gar nicht so einfach. Teilweise sind auch schon Kombinationen von zwei Modifikationstasten belegt und mehr sind schwierig zu tippen, zu halten und zu behalten…

Daher habe ich alle vier in Hardware vorhandenen Modifikationstasten zu einem Hyper Key zusammengefasst und auf die Caps Lock Taste gebunden. Diese Kombination ist ohne ein Remapping so dermaßen blöd zu tippen, dass sie mit keinerlei mir bekannten anderen Shortcuts kollidert.

So steht mir die gesamte Tastastur für die Definition eigener Kommandos zur Verfügung. Und das allerbeste ist, dass Esc auch auf Caps Lock liegen kann:

  • Wenn Caps Lock gehalten wird und dann eine andere Taste auslöst, verhält sie sich als Hyper.
  • Wenn Caps Lock betätigt und wieder gelöst wird, verhält sie sich als Esc.

Und das geht so:

Als erstes wird das Caps Lock Keycode Mapping in PCKeyboardHack auf die 80 eingestellt. Das ist der Keycode für F19. Diese Taste existiert weder auf meiner MacBook Pro Tastatur, noch auf dem Apple Bluetooth Keyboard. Nur auf der großen, kabelgebundenen Apple Tastatur gibt es diese Taste ganz rechts oben auf dem Ziffernblock. Diese nutzte ich in den vergangenen Jahren genau nie, sie ist mithin über.

Als nächstes benötigt man dann noch KeyRemap4MacBook. Mit diesem Tool kann man so ziemlich alles an einer Mac-Tastatur einstellen. Die standardmäßigen Optionen sind schon sehr mächtig, lassen sich aber zusätzlich über eine persönliche XML-Datei namens private.xml weiter konfigurieren. Am einfachsten erreicht man die private.xml über den Punkt Misc & Uninstall - Custom Setting - Open private.xml.

Das öffnet zunächst den Finder mit dem Ordner ~/Library/Application Support/KeyRemap4MacBook.

Dort gelandet lässt sich die private.xml mit dem bevorzugten Texteditor bearbeiten. Hier ist meine:

Meine private.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0"?>
<root>
    <item>
        <name>Remap Caps Lock to Hyper</name>
        <appendix>OS X doesn't have a Hyper. This maps CapsLock hold to Control+Shift+Option+Command, CapsLock only to Escape.</appendix>

        <identifier>caps_lock_to_hyper</identifier>

        <autogen>
            --KeyOverlaidModifier--
            KeyCode::F19,
            KeyCode::COMMAND_L,
            ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
            KeyCode::ESCAPE
        </autogen>
    </item>
</root>

Der interessante Teil ist im <autogen>-Abschnitt zu finden. Hier wird genau das gewünschte Verhalten, nämlich Hyper beim Halten und Esc beim schlichten antippen von F19 definiert. Und da die Caps Lock Taste nun ebenfalls diesen Keycode sendet, verhält sie sich genau so.

Nachdem hier Änderungen durchgeführt wurden, kann man zurück in die Einstellungen von KeyRemap4MacBook und findet dort unter Change Key und nach einem beherzten Klick auf ReloadXML, die soeben neu gebaute Option Remap Caps Lock to Hyper, die nur noch mit einem kleinen Haken zu versehen ist, um sie zu aktivieren.

Das ist schon alles. Für noch viel mehr tiefschwarze Remapping-Magie, sei hier auf die KeyRemap4MacBook Dokumentation und das private.xml Reference Manual verwiesen.

Was macht man also nun mit dieser neuen, ultimativen Modifikationstaste? Besonders profitieren natürlich Macro-Tools wie Keyboard Maestro4 oder Fast Scripts von so einer Taste. Ich persönlich nutze weder das eine, noch das andere.

Die neuen Möglichkeiten mit Hyper zu arbeiten nutze ich vor allem für das Fenstermanagement mit Slate, sowie die Steuerung des Wohnzimmer-iTunes auf dem Mac mini via Simplify. So kann ich sowohl meinen üblichen Fensterwust slicen & dicen wie es mir passt, als auch die Musik auf dem anderem Mac steuern, ohne die Hände von der Tastatur zu nehmen. Enorm praktisch und wirklich konkurrenzlos schnell.

Wie das genau funktioniert, werde ich in zwei folgenden Posts aufschreiben.

Pro Tips

Zum Abschluss drei weitere Hinweise. Die haben nicht direkt etwas mit Hyper zu tun, sorgen aber dennoch für noch mehr Spaß am Gerät.

private.xml in ~/.dotfiles versionieren

Die persönliche private.xml kann unter Umständen deutlich mehr Einträge als nur den oben stehenden Hyper-Part beinhalten. Damit man sie, wie andere Konfigurationsdateien, versioniert und leicht verteilbar halten kann empfiehlt es sich, diese in den eigenen dotfiles zu speichern5. Dazu verschiebt man die private.xml einfach in ~/.dotfiles und verlinkt sie zurück an die ursprüngliche Stelle:

private.xml in .dotfiles
1
2
3
4
5
mkdir "~/.dotfiles/KeyRemap4MacBook/"

mv "~/Library/Application Support/KeyRemap4MacBook/private.xml" "~/.dotfiles/KeyRemap4MacBook/"

ln -s "~/.dotfiles/KeyRemap4MacBook/private.xml" "~/Library/Application Support/KeyRemap4MacBook/private.xml"

Das ist dann wieder eine Sache weniger, die man sich auf einem neuen Mac zurecht konfigurieren muss.

Key Repeat Rate anpassen

Ich tippe schnell und ich mag eine schnelle Tastatur. Auch, dass eine Taste sich schnell wiederholt. Daher habe ich die Key Repeat Rate mit den folgenden Einstellungen nach oben geschraubt.

Die Initiale Wartezeit beim Anschlag einer Taste habe ich von 500 auf 400 ms verringert und die Wartezeit beim Halten der Taste von 83 auf 33 ms gesenkt. Für erhöhte Schwuppdizität eine unerlässliche Sache.

Function Key Magic

Die Funktionstasten auf einem Mac sind standardmäßig mit Funktionen wie Lauter, Leiser, Heller, Dunkler, Dashboard und so weiter belegt. Will man anstelle von Lauter F12 auslösen, muss man zusätzlich Fn bemühen. Das ganze kann man auch umkehren und standardmäßig die Funktionstasten anstelle der integrierten Kontrollen auslösen. Dazu ist aber immer ein Ausflug in die Systemeinstellungen nötig.

Mit Palua ist es möglich, per Hotkey den Modus der Funktionstasten auf der Tastatur hin und her zu schalten. Standardmäßig ist der Shortcut --, aber hier könnte man ja auch was mit Hyper machen…

Noch eleganter ist die Möglichkeit, den Modus basierend auf der aktuellen Applikation automatisch zu definieren. So kann ich in vim aus dem vollen Funktionstastenumfang schöpfen, während ich in anderen Programmen schnell die OS X Kontrollen nutzen kann.

GTD – Hyper Style

Es ist wirklich ausgesprochen erstaunlich, wie schnell sich selbstgebaute, persönliche Shortcuts in das Muskelgedachtnis einbrennen. Einfach deswegen, weil sie für einen selbst so verdammt nützlich sind und deswegen ständig benutzt werden.

Die nächste Phase ist dann rasch erreicht:

Sehr kurze Zeit nachdem man sich an die persönliche Arbeitsweise mit Hyper gewöhnt hat, funktionieren andere Computer nicht mehr so recht und wirken in ihren Möglichkeiten arg beschränkt. Das persönliche GTD-Empfinden hat heutzutage eben wirklich immer weniger mit roher Rechenkraft zu tun, als mit der Art und Weise wie man den Computer benutzt. Und da ist Hyper ein extrem nützlicher Baustein.

Highly recommended.

(via: Steve Losh, Dr. Drang und vor allem Brett Terpstra)

  1. Haha…

  2. Das alleine wäre dann die etwas schonendere Schraubenziehermethode…

  3. Und das geht als vim User wirklich rasch…

  4. Gerade erst frisch in Version 6.0 erschienen…

  5. Ihr habt doch ein git-repo unter .dotfiles, oder?

Comments