Ĥallo, ich möchte für eine Steuerung, die ich gerade baue, eine optische Rückmeldung im Augenwinkel für Tastendrücke. Das Gehirn des ganzen ist ein ITX-board mit Debian 10 (x86). Die Eingabe läuft über die Elektronik einer USB Tastatur, die an die Matrix-Tastatur eines alten (Musik-)Keyboards geflanscht wurde. Zur Ausgabe stehen mehrere RGB-LEDs zur Verfügung, welche über Port-Expander am SMBus (i2c) hängen. Im Homeverzeichnis habe ich bereits ein Script, welches per Zufallsgenerator einer LED eine neue Farbe verpasst ("/home/user/newrgbval.sh"). Wenn das ausgeführt wird, wird direkt die Farbe gewechselt. Ich möchte nun, dass für jeden Tastendruck im laufenden X dieses Script aufgerufen wird, zusätzlich zur normalen Abarbeitung (Ein "hook" also?). Wenn das bei jeder angeschlossenen Tastatur passiert, egal. Wenn ich eine angeben könnte, auch gut. Einen Window-Manager will ich in der fertigen Anwendung nicht haben, das einzige grafische Programm auf dem Rechner wird fullscreen direkt auf X aufsetzen. Zur Not würde ich noch was schmales wie LXDE oder Fluxbox dazwischen laufen lassen, wenn es damit eine einfache Möglichkeit gäbe. Wenn ich mir die Ausgabe von xev z.B. anschaue dürfte sowas ja relativ einfach möglich sein. <gesuchtes tool> bekommt alle Events in X zugesandt und für jedes Tastatur-Eingabe-Event wird ein Script aufgerufen. Ich hoffe, dass es da schon was passendes gibt und ihr mir helfen könnnt. Danke fürs Lesen und evtl. Antworten! Ich
xinput kann das (nicht mit nacktem X probiert): https://unix.stackexchange.com/a/129171
1 | $ xinput test |
2 | [gekürzt] |
3 | ⎣ Virtual core keyboard id=3 [master keyboard (2)] |
4 | [gekürzt] |
5 | ↳ HID 046a:0023 id=9 [slave keyboard (3)] |
6 | [gekürzt] |
7 | ↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)] |
8 | [gekürzt] |
9 ist bei mir die angestöpselte USB-Tastatur, 13 die Notebook-Tastatur.
1 | $ xinput test 9 | stdbuf -o0 grep "press" | while read dontcare; do echo "blink"; done |
gibt ein "blink" aus, wenn an der USB-Tastatur eine Taste gedrückt wird.
Das erste "xinput test" sollte natürlich "xinput list" sein.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.