Moderne Tastaturen verfügen oft über programmierbare Funktionstasten. Auf meinem Logitech Cordless iTouch Keyboard gibt es gleich 12 davon (zuzüglich der drei Windowstasten). Grund genug sich mit dem Thema Tastatur und XFree etwas zu beschäftigen.
Die meisten Distributionen binden die Windowstasten inzwischen in die Konfiguration als ModX und Menue ein, die restlichen Tasten werden aber leider ignoriert. Unter Micro$oft Windoze kann man die Funktionen der Tasten recht komfortable mit der Software des Herstellers programmieren. Da aber bisher kein Hersteller für GNU/Linux ein ähnliches Tool geschrieben hat, muß man zur Selbsthilfe greifen.
Die folgende Lösung geht davon aus, daß XFree in der Version 4 vorliegt und geht nicht auf KDE ein. Bei XFree in der Version 3 muß X (meines Wissens nach) leider neu kompiliert werden und KDE überschreibt per default die X Einstellungen.
Zuerst muß man den keycode der Funktionstasten ermitteln. Dazu öffnet man das Programm xev und betätigt die gewünschte Funktionstasten. Das Programm gibt nun zusammen mit einigen anderen Informationen den keycode der gedrückten Taste aus. Diesem Code ordnet man dann in ~/.Xmodmap (für ein User) oder /etc/X11/Xmodmap (für alle User) eine freie Taste zu (keycode XXX = Taste). Es hat sich hierbei bewährt die neuen Tasten einfach als F13, F14 usw. zu bezeichnen.
# /etc/X11/Xmodmap bzw. ~/.Xmodmap # für Logitech Cordless iTouch Tastatur keycode 178 = F13 keycode 230 = F14 keycode 229 = F15 keycode 223 = F15 keycode 162 = F16 keycode 164 = F17 keycode 144 = F18 keycode 153 = F19 keycode 236 = F20 keycode 174 = F21 keycode 176 = F22 keycode 229 = F23 |
Für Debian (ab woody) ist noch etwas zusätzliche
Arbeit erforderlich, da die -> Entwickler beschlossen haben die
Dateien /etc/X11/Xmodmap
und ~/.Xmodmap
nicht mehr beim Start von XFree auszuwerten. Um diesen Mechanismus
wieder zu aktivieren, muß man (wie in der Manualseite
man xmodmap
erläutert) im Verzeichnis
/etc/X11/Xsession.d/ ein Script
40xcustom_load-xmodmap anlegen.
# /etc/X11/Xsession.d/40xcustom_load-xmodmap # (nur für Debian ab woody notwendig) SYSMODMAP=/etc/X11/Xmodmap USRMODMAP=$HOME/.Xmodmap if [ -x /usr/bin/X11/xmodmap ]; then if [ -f $SYSMODMAP ]; then xmodmap $SYSMODMAP fi fi if [ -x /usr/bin/X11/xmodmap ]; then if [ -f $USRMODMAP ]; then xmodmap $USRMODMAP fi fi |
Es sei aber darauf hingewiesen, daß der Xmodmap Mechanismus nicht ohne Grund entfernt wurde. Deshalb sollte man die korrekte Reaktion des Systems auf Tastaturereignise nach anlegen des Scripts testen.
Das weitere Vorgehen ist leicht: Man ordnet den neuen Funktionstasten mit Hilfe seines Lieblings Windowmanagers einige häufig genutzte Kommandos zu.
In bevorzuge als Windowmanager Window Maker und habe Shortcuts auf mutt, mozilla, xterm und logout gelegt. Die Tasten play, next usw. nutze ich zur Steuerung von xmms. Window Maker erlaubt leider nur Shortcuts auf Menüeinträge. Man legt also für alle Programme für die nicht schon Menüeinträge existieren mit WPrefs eine neues Untermenü an und ordnet die Shortcuts zu.
// Ausschnit aus ~/GNUstep/Defaults/WMRootMenu [...] media, ( "xmms-shortcuts", (play, SHORTCUT, F16, EXEC, "/usr/bin/xmms-shell -e play"), (stop, SHORTCUT, F17, EXEC, "/usr/bin/xmms-shell -e stop"), (backward, SHORTCUT, F18, EXEC, "/usr/bin/xmms-shell -e backward"), (forward, SHORTCUT, F19, EXEC, "/usr/bin/xmms-shell -e forward"), ("volume -", SHORTCUT, F21, EXEC, "/usr/bin/xmms-shell -e -"), ("volume +", SHORTCUT, F22, EXEC, "/usr/bin/xmms-shell -e +") ), [...] |
Für die Fernsteuerung von xmms nutze ich das
Programm xmms-shell (als deb verfügbar), welches es
ermöglicht xmms aus einer Console heraus zu bedienen.
xmms-shell erlaubt über die Kommandozeilen Option
- e Kommando
auch die nicht interaktive
Nutzung. z.B. xmms-shell -e stop
. Eine Liste aller
möglichen Kommandos gibt xmms-shell -e help
.
Verwendet man zusätzlich noch das xmms Plugin
xmms-osd-plugin (als deb verfügbar) erhält man
eine Art On-Screen Display für xmms. Insgesamt läßt
sich xmms so sehr komfortabel und vor allem schnell
fernsteuern.