[Linux/X] Script bei jedem Tastendruck ausführen

Gast #6260641
Lesenswert?
• ▲
▼
Ĥ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
Gast #6260898
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.