Wie ich ja schon in einem anderen Beitrag erwähnte, hat mich ein Kumpel auf eine super Idee gebracht. Man schließt einen Ziffernblock an die Dockstar an, und kann über Tastenkombinationen Befehle ausführen.
Das Script welches das ganze realisiert liest /dev/tty0 aus. Dies ermöglicht ein Zeilenweises auslesen. Auch die Backspace-Taste funktioniert problemlos. Man kann also die Eingaben sogar noch korrigieren.



Zusätzlich kann man eine PIN definieren um bestimmte Befehle zu schützen. Bevor man diese PIN nicht eingegeben hat, funktionieren nur Befehle bei denen der Parameter must_authentificate auf false gesetzt ist.
Wurde die PIN richtig eingegeben, blinkt der NumLock drei mal. Das selbe bei der Eingabe des Logout-Codes. Gibt man eine Tastenkombination ein die nicht belegt ist, passiert einfach nichts. Bei einer richtigen Eingabe blinkt der NumLock einmal. Der Befehl wird natürlich auch ausgeführt. 
Alle Aktionen werden außerdem in einem Log gespeichert.
Damit das NumLock-Blinken funktioniert braucht man übrigens einen Ziffernblock der keinen eigenen NumLock hat. Ich musste mir extra einen neuen kaufen, da der, der hier jahrelang im Schrank lag leider genau so einer war. Im Media Markt bin ich dann fündig geworden. Es handelt sich dabei um ein Hama Slimline Keypad »SK120«.
Der Verkäufer hat extra die Packung aufgeschnitten und getestet. *Thumbs.up*
Ich hoffe das es hier einige Besucher gibt die meinen Keylistener mal ausprobieren. Würde mich sehr über ein Feedback freuen. 
Einrichtung
Die Einrichtung ist eigentlich ganz einfach. Das Archiv muss in einen beliebigen Ordner auf der Dockstar entpackt werden. Die Definition der Befehle finden in der Datei config.inc.php statt.
Der Parameter file definiert das Device-File welches abgehört werden soll. Der Parameter muss im Normalfall aber nicht angepasst werden. Für Login und Logout können jeweils die Codes und eine Mitteilung definiert werden, die dann in das Log geschrieben wird.
Unter bindings werden die eigentlichen Codes definiert. Hier ein Beispiel:
"123" => array( // <-- Der Code
"command" => "/usr/bin/setleds -num < /dev/tty0", // <-- Num Lock LED ausschalten
"logmessage" => "Test",
"must_authentificate" => false, // <-- oder true
)
In Zeile 1 kann ein beliebiger Code definiert werden. Wie lang dieser ist, spielt hier keine Rolle.
Nun noch den Befehl und eine Log-Nachricht definieren und entscheiden, ob man den Befehl auch ausführen darf wenn man nicht angemeldet ist.
Die einzelnen Befehle müssen mit Kommata getrennt werden!
Gestartet wird der Listener über das beiliegende Shellscript. Einfach die Datei runscript.sh mit dem Parameter start, stop oder restart ausführen. Natürlich muss php5-cli installiert sein.
Außerdem sollte der Listener in einem Ordner betrieben werden, in dem er auch Dateien erstellen kann. Beim Start werden ein pid File und die Log-Datei erstellt.
Übrigens: Um einen neuen Befehl hinzuzufügen, brauch man den Listener nicht neu starten!
Eine neue Version ist in Arbeit. Siehe folgenden Beitrag.