Sondertasten und Multimediatasten #

Auf vielen Tastaturen gibt es spezielle Tasten, die in einer normalen Linux-Umgebung nicht belegt sind. Dies sind z.B. die sogenannten "Multimediatasten", die oftmals Beschriftungen haben, um einen Musikplayer zu steuern, das sind Tasten wie "Sleep", "Power", etc. und last not least sind auch die auf vielen Tastaturen befindliche "Windows"-Tasten solche Sondertasten.

Über das Problem des KommaImZiffernblock gibt es übrigens eine eigene Wiki-Seite.

So wirds gemacht #

Einen guten Link zum Thema gibt es unter

Aber hier eine kurze Zusammenfassung:

Schritt eins: keycode #

Der Kernel bekommt von der Tastatur sogenannte "raw scan codes". Diese werden in den allermeisten Fällen und einem halbwegs aktuellen Kernel von diesem in sogenannte Keycodes umgewandelt. Damit arbeiten dann alle Konsolenprogramme. An dieser Stelle hilft das Kommandozeilenprogramm xev, mit dem man diesen Keycode anzeigen kann. Wer hier eine Reaktion auf seine bisher funktionslose Taste bekommt, hat schon so gut wie gewonnen.

Schritt zwei: Keysym #

Der X-Server benutzt nun selber sogenannte keysyms. Diese werden mit dem Programm xmodmap einem keycode zugeordnet. Wer mit xev einen keycode gefunden hat, kann evtl. in /usr/share/X11/XKeysymDB nachsehen, welche keysyms (neben den einfachen wie "A" oder "F1") erlaubt sind.

Schritt drei: Eine Applikation finden, die die keysym benutzt #

Nachdem die keysyms passen, kommt nun die letzte Hürde: Man muss ein Programm haben, daß mit dem neuen keysym-Tastaturcode auch etwas anfangen kann. Hier kommt es stark auf die jeweilige Applikation selber an. So unterstützen wohl die meisten Musikplayer bereits automatisch die entsprechenden Tasten. Wer selber etwas besonderes will, muss in die Doku sehen. Einfach zu bewerkstelligen ist das Starten von Applikationen. Dies geht z.B. über das KDE-Menü ganz einfach (im Kontrollzentrum). Dort kann man für jeden Menüpunkt eine Tastenkombination zum STarten anlegen.

Sondertasten in Java (am Beispiel Eclipse) #

Java ist ja schon wieder eine ganz eigene Welt. Natürlich funktionieren da die Tastaturcodes, die der X-Server vorgibt, nicht. :-( Aber es geht dennoch. Ein Blick auf file:///home/tbayen/Daten/Dokumentationen_dontbackup/jdk-1.6-doc/api/java/awt/event/KeyEvent.html liess mich erkennen, welche Codes es in Java gibt. Also beschloss ich, einfach einen davon zu nehmen. Dabei fiel mir vor allem auf, daß dort 24 F-Tasten definiert sind. Also habe ich folgende .Xmodmap-Datei erstellt:

  keycode 234 = F13

Dieser Eintrag definiert die Taste 234 (Sondertaste mit einem Symbol in der Art wie "Blättern nach links" auf zwei meiner Tastaturen) als F13. Nun kann ich in Eclipse im Preferences-Menü unter "General -> Keys" im Eingabefeld für "Binding" diese Taste wie jede andere Taste drücken und erhalte die Anzeige "F13". Damit kann ich jetzt Eclipse-Funktionen per Sondertaste auslösen.

-- ThomasBayen

Tags:  Hardware, Java, Eclipse