Hey all, newbie to the forum here. I've got something that may interest all you hackers.
As part of a much larger project (I'll post about it here when I'm ready), I've been developing a Java wrapper for the Linux Evdev (event device) system. The Evdev system handles almost all input devices in Linux, including keyboards, mice, joysticks, touch panels, hardware buttons, etc. My wrapper has a good, easy-to-use OO design and works fairly similarly to KeyboardListeners in Swing. It also has specific event filters that simplify using specific hardware by generating more specific events (ATM only a joystick filter is available).
ATM, there's only source level docs, but I'm going to write some high-level HOWTOs and the like this weekend (honest). Code is alpha (only been tested with my Saitek pad/USB keyboard/USB mouse).
Github page here: http://github.com/progman32/evdev-java/tree/master
PS: I'd appreciate it if people try out my code with their devices (there's an included test program similar to evtest). I'll post instructions as soon as I can.