Die Windows-Tasten, mit denen die meisten Keyboards heutzutage ausgestattet sind, sind unter Linux nicht besonders nützlich. Das lässt sich zum Glück mit wenig Aufwand ändern. Sowohl unter KDE als auch auf der Konsole lassen sich diese Tasten mit Programmaufrufen oder Sonderfunktionen belegen.
Konsole
Kbd ist unter Linux für die Tastenbelegung zuständig. Die Einstellungen, welche Tasten mit welchen Funktionen verbunden werden, sind in einer “Keymap” gespeichert. Diese Keymaps befinden sich für deutsche Tastaturen unter /usr/lib/kbd/keymaps/i386/qwertz/. Alle Keymaps haben die Endung .map.gz (bzw. .kmap.gz unter Red Hat Linux 6.x). Das “.gz” zeigt an, dass die Maps mit gzip komprimiert sind.
Wenn man eine eigene Keymap erstellen möchte, braucht man nicht alle schon bestehenden Einstellungen noch einmal zu definieren, sondern kann diese einfach mit dem Befehl include aus einer anderen Keymap laden. Die Standard-Keymap für deutsche “qwertz”-Tastaturen ist de-latin1.map.gz; dementsprechend sollte die erste Zeile der neuen Keymap
include "de-latin1.map.gz"
lauten. Kbd arbeitet intern mit Keycodes, denen in der Keymap Funktionen zugewiesen werden. Den Keycode einer Taste kann man mit dem Befehl showkey herausfinden. Eine Liste aller Funktionen gibt dumpkeys -l aus. Die allgemeine Syntax, um einen Keycode mit einer Funktion zu verbinden, ist
keycode Nummer = Funktion
Wenn man per Tastendruck ein Programm starten will, muss man den entsprechenden Keycode erst einer ungenutzten Funktion wie F100 (Funktionstaste 100; F1 bis F12 sind die Funktionstasten auf der Tastatur) zuordnen und F100 dann wiederum mit der Zeichenkette “Programname\n” verknüpfen. Das erledigt ein Eintrag der folgenden Form:
string Funktion = "Programmname\n"
Wenn man nun die Taste drückt, hat das die selbe Folge, als wenn man erst den Programmnamen und dann [Enter] eingegeben hätte.
Eine Keymap, die beide Fenster-Tasten mit startx und die Menü-Taste mit ls verknüpft, ist im Listing 1 abgedruckt. Die fertige Keymap muss man nur unter /usr/lib/kbd/keymaps/i386/qwertz/meine.map speichern und mit dem Aufruf
gzip /usr/lib/kbd/keymaps/i386/qwertz/meine.map
komprimieren.
Man kann die Keymap nun mit loadkeys meine.map laden. Damit beim nächsten Start aber nicht wieder die alten Einstellungen aktiviert werden, sollten die Änderungen an geeigneter Stelle vermerkt werden:
- Bei SuSE Linux muss man die eigene Keymap in /etc/rc.config eintragen. Dazu muss man die Zeile KEYTABLE=”de-latin1.map.gz” in KEYTABLE=”meine.map.gz” ändern.
- Unter Red Hat Linux verfährt man entsprechend mit der Datei /etc/sysconfig/keyboard.
Tabelle 1: Keycodes
| Taste | Konsolen-Keycode | X-Keycode |
| linke Fenster-Taste | 125 | 115 |
| rechte Fenster-Taste | 126 | 116 |
| Menü-Taste | 127 | 117 |
Listing 1
meine.map
include "de-latin1.map.gz" keycode 125 = F100 keycode 126 = F100 keycode 127 = F101 string F100 = "startx\n" string F101 = "ls\n"
X Window / KDE
Unter der grafischen Oberfläche X Window ist xmodmap für Keymaps verantwortlich. Man muss auch hier keine eigene Keymap erstellen, sondern kann in der Datei ~/.Xmodmap Änderungen angeben (die Tilde steht für das eigene Home-Verzeichnis /home/username/). Die Syntax ist dabei die selbe, lediglich die Keycodes sind anders (siehe Tabelle 1). Wie im ersten Beispiel weist man den Keycodes unbenutzte Funktionen zu: in diesem Fall von F28 bis F30.
Jetzt kann man mit einem Programm namens KHotKeys (Internet: http://dforce.sh.cvut.cz/~seli/en/khotkeys/) den Windows-Tasten Programmaufrufe zuordnen – dieses Programm ist z. B. bei SuSE Linux enthalten und lässt sich über das Kontrollzentrum konfigurieren. Damit KHotKeys immer gestartet wird, muss man eine Verknüpfung im Ordner Autostart mit dem Befehl
ln -s /opt/kde/bin/khotkeys ~/Desktop/Autostart/
oder via Drag & Drop anlegen.
Listing 2
.Xmodmap
keycode 115 = F28 keycode 116 = F29 keycode 117 = F30

