Homepage Logo

Letzte Änderung dieses Dokuments: 06.04.2008, 11:36:51.

Multimedia-Tastaturen unter Linux/X11

1. Inhalt

   1. Inhalt
   2. Einführung
       2.1. Motivation
       2.2. Zielsetzung
       2.3. Feedback
   3. Verwendung der Tasten unter X11
       3.1. Voraussetzungen
       3.2. Verschiedene Ansätze
       3.3. Anwendungsspezifische Tasten
       3.4. Globale Tastendefinitionen
       3.5. Zur VMware...
       3.6. Lautstärkeregelung und OnScreenDisplay
       3.7. Anwendungsbeispiel: Cherry Cyboard Plus
   4. Verwendung der Tasten im Textmodus
   5. Weiterführende Informationen:

2. Einführung

2.1. Motivation

Immer häufiger sind im Bereich der PC-Architektur Tastaturen anzutreffen, die über mehr als die "üblichen" 104/105 Tasten verfügen.

Diese sogenannten "Multimedia-Tastaturen" haben in der Regel spezielle Sondertasten, die z.B. dazu dienen, das E-Mail-Programm zu öffnen oder die Lautstärke zu regeln.

Bekannte Beispiele solcher Tastaturen sind das Microsoft Internet Keyboard oder das Logitech iTouch Keyboard.

Für den Linuxanwender stellt sich hier die Frage, wie er die zusätzlichen Funktionstasten nutzen kann, wenn doch die mit den Tastaturen ausgelieferte Spezialsoftware natürlich mal wieder nur unter Windows läuft.

Ausserdem taucht diese Frage mit schöner Regelmäßigkeit immer wieder in der de.comp.os.unix.linux.*-Hierarchie auf, weil es dem Fragenden offenbar zu mühsam ist, die entsprechenden Postings vom letzten Mal per Google zu suchen. Um mir beim Antworten auf solche Fragen Zeit und Mühe zu sparen, habe ich alles auf meiner Webseite zusammengestellt.

2.2. Zielsetzung

Dieser Text soll eine kurze Übersicht über die Möglichkeiten geben, die dem Linux-Anwender zur Verfügung stehen, wenn er solche Tasten benutzen möchte.

Der Schwerpunkt liegt dabei auf der Verwendung unter dem X-Window-System, jedoch wird auch auf die Textkonsole eingegangen.

Da die Möglichkeiten sehr zahlreich sind und es eine Reihe von Software-Projekten gibt, die sich mit der Unterstützung dieser Tasten befassen, kann natürlich nicht im Einzelnen auf jedes Details jeder Spezialsoftware eingegangen werden. Vielmehr geht es um den groben Überblick. Es soll dem Anwender die Auswahl erleichtert werden.

Wie man dann konkret eine bestimmte Software einsetzt, ist auf der jeweiligen Webseite meist sehr ausführlich beschrieben.

2.3. Feedback

Selbstverständlich freue ich mich über Rückmeldungen. Jeder, der eine Anmerkung oder Anregung oder gar einen Fehler in diesem Text gefunden hat, kann sich gerne mit mir in Verbindung setzen.

Ich möchte aber darauf hinweisen, dass ich nicht der Autor der hier genannten Programme bin. Sollten Sie einen Verbessungsvorschlag zu einem dieser Programme haben oder ähnliches, sollten Sie sich lieber mit dem Autor des betreffenden Programms in Verbindung setzen.

Als Faustregel könnte man sagen: Für alles, was einem Besitzer einer Multimedia-Tastatur dabei helfen könnte, einen Überblick über die Möglichkeiten der Nutzung sowie deren Vorteile und Beschränkungen zu bekommen, wenden Sie sich an mich. Für alles, was konkret eine einzelne Software betrifft bzw. nicht direkt den Vergleich betrifft, wenden Sie sich an den Autor.

3. Verwendung der Tasten unter X11

3.1. Voraussetzungen

Die einzige wirkliche Voraussetzungen, die sich direkt an die betreffende Tastatur richtet, lautet: Die betreffenden Sondertasten müssen normale X-Events erzeugen.

Genauer: Die Tastatur muss Scancodes liefern und der Kernel daraus Keycodes machen, die X11 dann in X-Events umsetzt. Im letzten Abschnitt dieses Dokuments finden Sie weiterführende Information zu diesem Thema.

Sie können prüfen, ob dies zutrifft, indem Sie das Programm xev in einem Terminalfenster starten und die betreffenden Sondertasten drücken. Es müssen dabei im Terminalfenster entsprechende KeyPress- und KeyRelease-Events auftauchen.

Das sollte dann so aussehen:

KeyPress event, serial 27, synthetic NO, window 0x3800001,
root 0xad, subw 0x0, time 4461014, (268,-713), root:(1117,258),
state 0x10, keycode 234 (keysym 0x1008ff26, XF86Back), same_screen YES,
XLookupString gives 0 characters: ""

KeyRelease event, serial 27, synthetic NO, window 0x3800001,
root 0xad, subw 0x0, time 4461085, (268,-713), root:(1117,258),
state 0x10, keycode 234 (keysym 0x1008ff26, XF86Back), same_screen YES,
XLookupString gives 0 characters: ""

Wenn kein Keysym (hier: "XF86Back") angezeigt wird, ist das nicht weiter tragisch, da wir das später ändern können. Wichtig ist, dass überhaupt etwas passiert.

Tatsächlich ist mir keine Multimedia-Tastatur bekannt, bei der dies nicht der Fall ist, aber dennoch erwähne ich diese Voraussetzung mal lieber, denn bei manchen Laptops, die mit ähnlichen Tasten bestückt sind, kann dies auch anders sein.

3.2. Verschiedene Ansätze

Es gibt zwei grundsätzliche Ansätze, wie man eine Sondertaste unter X11 nutzen kann. Man kann nicht beide Ansätze für eine Taste verwenden, aber durchaus für verschiedene Tasten verschiedene Ansätze wählen.

Die erste Möglichkeit besteht darin, den Tasten via xmodmap einen symbolischen Namen zuzuweisen und ihre Auswertung dann der jeweiligen Anwendung zu überlassen. Ein Beispiel hierfür wäre eine Play-Taste, die je nach gerade laufender Anwendung xmms, mplayer, xine oder was auch immer zur Wiedergabe veranlasst.

Die zweite Möglichkeit ist, einen Dienst (ein im Hintergrund laufendes Programm) zu starten, das die Events der Tasten abfängt und immer die gleiche Funktion ausführt. Ein Beispiel für diese Methode wäre die Lautstärkeregelung über entsprechende Tasten, die unabhängig von der Anwendung erfolgt, die jeweils gerade den Fokus hat.

3.3. Anwendungsspezifische Tasten

Falls die Sondertasten keinen symbolischen Namen liefern, kann man das am Schnellsten mit xmodmap beheben. Neuere XFree86-Versionen haben eine Reihe von vordefinierten Keysyms, die man für solche Multimediatasten benutzen kann. Eine Übersicht findet sich in der Datei /usr/X11R6/lib/X11/xkb/symbols/inet.

Das geht ganz einfach: Man nimmt den Keycode, den xev anzeigt (dritte Zeile) und trägt ihn passend in die ~/.Xmodmap ein.

Hier mal beispielhaft für drei meiner Tasten:

keycode 234 = XF86Back
keycode 236 = XF86Mail
keycode 223 = XF86Standby

Einmal eingetragen, können die Definitionen mit dem Befehl:

bash$ xmodmap ~/.Xmodmap

geladen werden. Danach sollte xev den Keysym mit anzeigen (siehe obiges Beispiel).

Wer keine vordefinierten Keysyms der Form XF86Hastenetgesehen verwenden möchte oder kann, kann auch ersatzweise ungenutzte F-Tasten verwenden. Die Tasten F13-F20 bieten sich hier an, da sie auf keiner normalen PC-Tastatur vorhanden sind.

Sind die Tasten einmal mit Keysyms versehen, kann man sie in den entsprechenden Anwendung nutzen. Natürlich müssen diese das auch unterstützen. Im Folgenden eine Reihe von Beispielen:


AnwendungKonfiguration
XMMS Das X Multimedia System kann in der Datei ~/.xmms/menurc entsprechend konfiguriert werden.
MPlayer Der MPlayer erlaubt die Tastendefinitionen über die Datei ~/.mplayer/input.conf.
Xine Xine kann man in der ~/.xine/keymap entsprechend einstellen.
Konqueror Die Webnavigationstasten kann man im Konqueror über das Menü Einstellungen | Kurzbefehle festlegen... zuweisen.

3.4. Globale Tastendefinitionen

Damit man bestimmte Tasten, beispielsweise zur Lautstärkeregelung, global nutzen kann, benötigt man ein Programm, dass diese Tasten auswertet.

Solche Programme gibt es zuhauf, hier eine kleine Auswahl. Ich habe kurz die Eigenschaften, Besonderheiten, Vor- und Nachteile ausgeführt, möchte jedoch darauf hinweisen, dass ich diese Projekte auch nicht laufend überwache und meine Angaben daher veraltet sein könnten. Zudem handelt es sich dabei um meine persönlichen Eindrücke. Wer aber meint, dass ich eines der Projekte falsch oder ungerecht bewerte oder interessante Informationen hat, ist herzlich eingeladen, mich zu korrigieren.

ProgrammProKontra
xbindkeys Unauffällig; zuverlässig; schnell; leicht zu konfigurieren, da grafisches Frontend; funktioniert mit VMware. kein integriertes OnScreenDisplay (OSD).
Hotkeys Zuverlässig und schnell. kein grafisches Konfigurationsfrontend, kein OSD, eingeschränkte Flexibilität, muss nach VMware neu gestartet.
LinEAK Einfache Konfiguration dank bebilderter Vorlagen, Frontend. kein OSD, Frontend benötigt KDE.
JeruKey Frontend, integriertes OSD, Mehrfachbelegung von Tasten möglich. Plugin für die Audiolautstärke verträgt sich nicht mit dem ESD, Programm stürzt öfters mal ab, muss nach VMware neu gestartet werden, Projekt scheinbar eingeschlafen.
ACME nicht getestet, daher keine Bewertung nicht getestet, daher keine Bewertug. Scheint aber GNOME zu benötigen.
TPB Speziell für die Knöpfe eines IBM Thinkpads, mangels entsprechendem Notebook nie selbst getestet nicht getestet
BBkeys Speziell für den Window-Manager Blackbox entwickelt, läuft aber unabhängig auch unter anderen WMs. ungetestet
FunKey Eines der ältesten Pojekte, stellt ein spezielles /dev/funkey Device zur Verfügung. kein Frontend, erfordert Kernelpatch, scheinbar eingeschlafen
XMMS iTouch Plugin Spezielles Plugin für XMMS zur Lautstärkeregelung. erfordert XMMS, funktioniert nur dort
KHotKeys Bestandteil von KDE3 und neuer, KDE- und DCOP-Integration, Frontend (Kontrollzentrum) erfordert KDE, kein OSD

3.5. Zur VMware...

Das Programm VMware stellt einen virtuellen PC zu Verfügung. Damit man sein Windows oder welches Betriebssystem auch immer man dort installiert auch wie gewohnt nutzen kann, muss die VMware die Tastatur vollständig in Beschlag nehmen (grabben) und alles an das Gast-Betriebssystem weiterleiten. Das Verlassen dieses speziellen Modus geht nur über die Tastenkombination STRG+ALT. Gibt VMware danach die Tastatur wieder frei, funktionieren bei manchen Programmen auf einmal die Sondertasten nicht mehr; man muss die jeweiligen Programme erst neu starten. Welche Programme dies sind, habe ich, soweit es mit bekannt war, in der obigen Tabelle vermerkt.

3.6. Lautstärkeregelung und OnScreenDisplay

Zur Regelung der Lautstärke greifen die oben genannten Programme entweder selbst auf den Mixer zu oder sie erlauben nur die Ausführung eines Kommandos, dann kann man mithilfe von aumix oder amixer an den Reglern drehen. Letzteres ist in der Regel flexibler, da man Schrittweite und Mixerkanal beliebig wählen kann, während ersteres dafür meistens für die integerierten OnScreenDisplays (OSDs) - sofern vorhanden - benötigt wird.

Wenn eine Software kein OSD anbietet, dann kann man sich mit dem osdsh behelfen. Es benutzt die xosd-Library und überwacht selbständig den Mixer auf Änderungen, die es dann mit entsprechenden Balken anzeigt.

Die Vorteile sind: Das Programm überwacht alle Mixerkanäle, nicht nur den Master-Kanal. Zudem ist das Aussehen des OSD flexibler konfigierbar.

Ich selbst regle die Lautstärke mit aumix und nehme den osdsh für das OSD. Das von mir verwendete Theme dafür (erfordert TrueType-Fonts) können Sie in der nachfolgenden Sektion herunterladen.

3.7. Anwendungsbeispiel: Cherry Cyboard Plus

Ich verwende bei mir gegenwärtig ein Cherry Cyboard Plus (M83-13900):

Bild von Cyboard Plus

Die Lautstärkeregelung erledigt xbindkeys per aumix, für das OSD benutze ich osdsh.

In der ~/.Xmodmap habe ich bei mir die CAPS-Lock-Taste abgestellt und zu einem zusätzlichen Modifier gemacht. Ich persönliche habe diese Taste nie gebraucht, bin aber immer aus Versehen draufgekommen. Daher habe ich sie mit clear Lock abgeschaltet. Ein keycode 66 = Hyper_L und add Mod4 = Hyper_L macht sie zu einem zusätzlichen Modifier. Dann macht es immer noch nichts, wenn man mal versehentlich darauf drückt, aber ich kann sie als "Schnellstarttaste" missbrauchen. Häufig benötigte Programme kann ich über CAPS+F1 bis CAPS+F12 starten. Diese Tastenkombinationen werden nämlich garantiert nicht von anderen Programmen benutzt!

Theoretisch könnte man dafür auch die Windows-Taste nehmen, die ja unter Linux auch weitestgehend brach liegt. Doch hier ist mir persönlich die Verwechslungsgefahr zu hoch. Ein Fehlgriff und man hat statt WIN+F4 auf einmal ALT+F4 gedrückt. Aber das alles ist Geschmackssache, wer das nicht will, braucht es nicht zu übernehmen.

Hier eine Zusammenfassung der wichtsten Funktionen meiner Tastenbelegung.

Taste(n)Funktion
LautstärkeRegelt die Lautstärke auf dem Master-Kanal
CTRL+LautstärkeRegelt die Lautstärke auf dem Line-In-Kanal
ALT+LautstärkeRegelt die Lautstärke auf dem Mikrophon-Kanal
MuteTon an/aus
Shift+MuteStellt die Standardeinstellungen des Mixers wieder her (alsactl restore).
CAPS+F1Startet KNode
CAPS+F2Startet GAIM
CAPS+F3Startet Eterm
CAPS+F5Öffnet einen Dialog zur Auswahl verschiedene Browser
CAPS+F6Startet Konqueror
CAPS+TÜbersetzt den aktuell markierten Text (die X-Selection) mithilfe von translate.sh

Ich habe nicht alle Tasten belegt, aber wer möchte, kann meine Konfigurationsdateien gerne als Vorlage nehmen, um sich etwas Eigenes zu basteln. Verbesserungsvorschläge sind willkommen.


Hinweis: Früher hatte ich ein Logitech Cordless Desktop Optical , welches mir jedoch von der Verarbeitung her nicht gefallen hat. Nach einem Garantietausch nach nur 11 Monaten habe ich es dann verkauft und mir das Cherry zugelegt, welches solider verarbeitet ist (ist natürlich nur mein persönlicher Eindruck - Tastaturen sind wirklich Geschmackssache). Wer Interesse daran hat: Ich habe hier noch ein paar alte Konfigurationsdateien für diese Tastatur zusammengepackt.

4. Verwendung der Tasten im Textmodus

Um die Sondertasten auch auf den virtuellen Konsolen im Textmodus verwenden zu können, kann man entweder das bereits oben erwähnte Projekt FunKey benutzen oder aber den Links der weiterführenden Informationen folgende. Diese Artikel der SuSE Supportdatenbank beschrieben die Einrichtung solcher Tasten und sind auf jede Distribution übertragbar.

5. Weiterführende Informationen:

Falls Ihre Sondertasten keine X-Events erzeugen, müssen Sie vielleicht erst den Scancodes einen Keycode zuweisen. Wie dies geht oder wie man Sondertasten im Textmodus nutzt oder wie man unter X11 mit Scancodes umgeht, lesen Sie am besten bei den folgenden externen Quellen nach:

[05.05.2008] Neuer PGP-Schlüssel
Ich habe einen neuen PGP/GPG-Schlüssel erzeugt. Der alte ist nach wie vor gültig und kann auch noch benutzt werden.

[02.04.2008] Umzug
Die Domain malte-wetz.de wird jetzt bei einem anderen Anbieter gehostet. Es sollte keine Probleme mehr mit der Umleitung geben und Werbepopups oder -frames gehören der Vergangenheit an.

[02.04.2008] Gästebuch offline
Das Gästebuch bleibt erst einmal offline. Es wurde dort zu viel Werbemüll hinein geschrieben. Sorry.

[09.01.2006] Diverses
Kleinere Korrekturen und Ergänzungen an den Texten, IP-Filter im Gästebuch stark erweitert (Lateinamerika, Spanien, Asien, Italien).

[28.07.2005] vbox3-Anleitung
Kleinere Ergänzungen/Korrekturen im Abschnitt 4.1.1

[23.04.2005] gDesklets aktualisiert
Da meine gDesklets offenbar von gdesklets.gnomedesktop.org gelöscht wurden, habe ich die aktuellsten Fassungen hier abgelegt.

[25.01.2005] Kleinere Reparaturen
Links auf BSI-Seite und OE-FAQ angepasst und Gästebuch repariert.