GNU/Linux >> Znalost Linux >  >> Linux

Zachycování událostí klávesnice Linuxu /dev/inputX

Dobrý den,

Nedávno jsem se snažil dosáhnout něčeho podobného.

Podívejte se na projekt logkeys:

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

Pokud si stáhnete zdrojový kód a podíváte se do souboru logkeys.cc, najdete jeden způsob, jak automaticky zjistit, který /dev/input/event používá vaše klávesnice. To vám umožní číst nezpracované kódy skenování z klávesnice bez ohledu na to, který program je aktuálně aktivní. Program logkeys také ukazuje, jak převést skenované kódy na znaky a další užitečné triky.

Doufám, že to pomůže,

Markus.


Jednoduchý grep provoz na /proc/bus/input/devices soubor poskytne všechny klávesnice připojené k počítači:

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

Kde EV=120013 je bitová maska ​​pro události podporované zařízením. Jak je vysvětleno zde.

Takto je implementován v logkeys


Čtete na špatném zařízení. Buď vyzkoušejte všechny /dev/input/event* nebo se podívejte do /var/log/Xorg.0.log, které zařízení se používá pro vaši klávesnici.


Linux
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Kdy použít /dev/random vs /dev/urandom?

  3. Linux – sloučení /usr/bin A /usr/sbin do /bin (gnu/linux)?

  1. Linux:Rozdíl mezi /dev/console , /dev/tty a /dev/tty0

  2. jádro:deaktivace /dev/kmem a /dev/mem

  3. Je špatné propojit /dev/random s /dev/urandom v Linuxu?

  1. Jak vygenerovat náhodné heslo v linuxu pomocí /dev/random

  2. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  3. Jak přenosné jsou /dev/stdin, /dev/stdout a /dev/stderr?