kabelgebundene Multimediafernbedienung

Schon eine ganze Weile lang überlege ich, wie ich es mir erleichtern kann meinen Rechner von der Couch aus besser fern steuern zu können. Bisher benutze ich dafür die App XMouse auf meinem Smartphone, die das sehr solide leistet und rechnerseitig lediglich einen SSH-Server und das xdotool vorraussetzt. Nun hab ich mein Smartphone nicht immer bei mir und selbst wenn, ist es nicht entsperrt und mit dem WLan verbunden. Wenn ich ein laufendes Video kurz unterbrechen wollte, war es oft leichter aufzustehen und Tastatur und Maus zu benutzen.

Nach dem meine Suche nach Funk-gestützten Präsentationsmäusen und anderen Gadgets eher enttäuschend verlief, stieß ich bei Ebay auf den Markt der Numpads. Das sind kleine Keyboards, die als „Numeric Keypad“ für Laptops verkauft werden und neu für unter 10€ zu bekommen sind. Das von mir bestellte Gerät der Firma Genius verfügt über 23 Tasten. Mehr als genug für meine Zwecke.

NUM-Pad Keyboard
Genius Numpad i120

Nun bringt es mir wenig auf die Tasten des Nummernblockes auch auf der Couch Zugriff zu haben. Um die Funktionen der Tasten neu zu belegen bietet sich unter Linux traditionell das Tool xmodmap an. Leider half mir das hier nicht weiter, denn ich wollte ja nur die Tasten des Mini-Keyboards neu belegen. xmodmap kommt hier an seine Grenzen, denn es kann zwar einzelnen Tasten(kombinationen) neue Werte zuweisen, doch dies nicht gesondert für einzelne Tastaturen.

Nach einigem Suchen stieß ich auf eine Antwort: Wie Watcom dort erklärt, hilft in meinem Fall das Tool xkbcomp weiter. Zusammen mit einem kleinen Script, dass er direkt mitliefert, lassen sich Tastaturbelegungen für einzelne Tastaturen gesondert ändern.

Das Programm war bei mir bereits (ab Werk?) installiert, so dass ich im ersten Schritt zunächst nach dem Namen der angeschlossenen Tastatur zu suchen hatte.

xinput list

lieferte mir eine Liste der angeschlossenen Eingabegeräte. Ganz am Ende der Liste tauchte nach dem Anschließen der Numpad-Tastatur ein neuer Eintrag mit dem Namen SEM USB Keyboard auf.

In der dritten Zeile seines Scripts änderte ich darauf hin das Wort GASIA auf SEM. Die Zeile sah nun so aus:

sed -n 's/.*SEM.*id=\([0-9]*\).*keyboard.*/\1/p'

XKB-Codes
Tastatur-Layout mit XKB- und Key-Codes des Nummernblocks
Dieses war der einfache Teil. Auf der Github-Seite, die in Antwort von Watcom verlinkt ist, suchte ich mir dann die XKB-Identifizierungscodes für die Tasten heraus, die ich umbelegen wollte. Das kleine Programm xev half mir dabei sehr, denn es liefert bei Tastendruck unter anderem den sogehörigen Numerischen Werte der Taste zurück. Der zugehörige XKB-Identifizierungscode lässt sich dann über diese Liste finden. Die entsprechenden Codes für meine Tastatur findet ihr in der folgenden Tabelle. Die müssen jedoch nicht zwingend mit der von euch verwendeten Tastatur übereinstimmen. Kontrolliert das also besser nochmal gegen.

Die findigen unter euch werden bemerkt haben, dass ich euch die oberste Zeile unterschlagen habe. Ich habe sie schlicht nicht gebraucht und mir deswegen nicht die Mühe gemacht, sie zu recherchieren.

Im letzten Schritt musste ich nun nur noch in dem Script (meine Version findet ihr hier) die entsprechenden Ersetzungen vornehmen. Dazu werden den XKB-Codes einfach neue Funktionen zugeteilt. Die meisten Videoplayer (und auch die Webbrowser) skippen Videos nach vorn mit n (Next) und zurück mit p (Previous). Unterbrechen lassen sie sich mit der der Leertaste (space). Für lauter, leiser und mute gibt es XF86-Befehle mit den Namen XF86AudioRaiseVolume, XF86AudioLowerVolume und XF86AudioLowerMute. Eine komplette Liste möglicher Befehle bekommt ihr nach der Eingabe von

xmodmap -pke

Wenn ihr eine Idee habt, wonach ihr sucht, aber auf Nummer sicher gehen wollt, könnt ihr die Ausgabe mittels |-Operator und grep beschränken.

xmodmap -pke | grep XF86

gibt euch beispielsweise eine Liste aller XF86-Befehle.

xmodmap -pke | grep Mute

zeigt euch den genauen Mute-Befehl. Solltet ihr dennoch nicht finden, was ihr sucht, dann fragt das Internet. Bei der Suchen nach „xmodmap“ ergänzt um die Funktion die ihr sucht, werdet ihr sicher fündig.

fertige Fernsteuerung
fertige Fernsteuerung
Nachdem das Script fertig ist, speichert ihr es am besten in eurem $HOME-Folder ~ unter einem Namen eurer Wahl. Ich habe mich für .xkb entschieden. Bevor ihr eure Änderungen ausprobieren könnt, müsst ihr das kleine Script zunächst ausführbar machen

chmod +x ~/.xkb

Nun könnt ihr das Script durchlaufen lassen und gucken, ob eure Eingaben das tun, was ihr euch von ihnen erwartet. Ein Neustart des XServers (bzw. ein Abmelden und wieder Anmelden) lässt sie verschwinden.

Wenn ihr euer Script fertig habt, dann müsst ihr es nur noch zu den Startprogramme hinzufügen. Jetzt könnt ihr euch Gedanken machen, wie ihr die Tasten so beschriftet, dass ihr noch durch seht. Ich hab mir mit alten Freifunk-Aufklebern und einem Kugelschreiber beholfen.

Wichtiger Hinweis: Überklebt eure selbstgestalteten Tastaturaufkleber vor dem Anbringen mit durchsichtigem Tesafilm, damit sie auch ein bisschen halten. Tastaturtasten haben normaler Weise eine quadratische Form mit 19mm Kantenlänge. Viel Spaß beim basteln. ;)

PS: Wenn ihr nicht selber basteln wollt, gibt es da draußen im Internet unter dem Stichwort „Tastaturaufkleber“ eine bunte Auswahl fertiger Sticker. Prüft aber vorher, ob die von euch gebrauchten Symbole dabei sind. Gerade Multimedia-Symbole sind da eher die Ausnahme.