#!/usr/bin/python3 import argparse import contextlib import evdev import json import sys parser = argparse.ArgumentParser() parser.add_argument('device') args = parser.parse_args(sys.argv[1:]) with contextlib.closing(evdev.InputDevice(args.device)) as device: out = {} out['linux-evdev-device-desc'] = 0 out['name'] = device.name info = {} info['bustype'] = device.info.bustype info['vendor'] = device.info.vendor info['product'] = device.info.product info['version'] = device.info.version out['info'] = info caps = {} for t, l in device.capabilities().items(): if t == evdev.ecodes.EV_SYN: continue caps[t] = l out['capabilities'] = caps # TODO: LEDs json.dump(out, sys.stdout, indent = 4)