GNU/Linux >> Linux Esercitazione >  >> Linux

Acquisizione eventi tastiera Linux /dev/inputX

Ciao,

Di recente stavo cercando di realizzare qualcosa di simile.

Dai un'occhiata al progetto logkeys:

http://code.google.com/p/logkeys/

Se scarichi il codice sorgente e dai un'occhiata al file logkeys.cc, troverai un metodo per rilevare automaticamente quale /dev/input/event è utilizzato dalla tua tastiera. Ciò ti consentirà di leggere i codici di scansione non elaborati dalla tastiera, indipendentemente dal programma attualmente attivo. Il programma logkeys mostra anche come tradurre i codici di scansione in caratteri e altri trucchi utili.

Spero che questo aiuti,

Marco.


Un semplice grep operazione su /proc/bus/input/devices file produrrà tutte le tastiere collegate alla macchina:

 grep -E  'Handlers|EV=' /proc/bus/input/devices | \
 grep -B1 'EV=120013' | \
 grep -Eo 'event[0-9]+'

Dove EV=120013 è la maschera di bit per gli eventi supportati dal dispositivo. Come spiegato qui.

Questo è il modo in cui viene implementato in logkeys


Stai leggendo il dispositivo sbagliato. Prova tutto /dev/input/event* o cerca in /var/log/Xorg.0.log quale dispositivo viene utilizzato per la tua tastiera.


Linux
  1. Cosa sono i file /dev/zero e /dev/null in Linux

  2. Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

  3. Linux:differenza tra /dev/console , /dev/tty e /dev/tty0

  4. kernel:disabilitare /dev/kmem e /dev/mem

  5. È sbagliato collegare /dev/random a /dev/urandom su Linux?

tty (/dev/tty ) vs pts (/dev/pts) in Linux

Linux:differenza tra /dev/console , /dev/tty e /dev/tty0?

Quanto sono portatili /dev/stdin, /dev/stdout e /dev/stderr?

Quando usare /dev/random vs /dev/urandom?

Linux:cosa significa la lettera "u" in /dev/urandom?

/dev/null in Linux