I've written a little decoder for the bitmapped information in /proc/bus/input/devices, works well for showing how the system sees each device:
decode-devices.pl -> src (Perl) (right-click -> save-as)
The output is essentially a verbose parsing of the information. My machine returns this information:
I: Bus=0010 Vendor=001f Product=0001 Version=0100 N: Name="PC Speaker" P: Phys=isa0061/input0 S: Sysfs=/class/input/input0 H: Handlers=kbd event0 B: EV=40001 : 18-SND 0-SYN B: SND=6 : 2-TONE 1-BELL I: Bus=0003 Vendor=046a Product=0048 Version=0111 N: Name="Das Keyboard" P: Phys=usb-0000:00:02.0-1/input0 S: Sysfs=/class/input/input1 H: Handlers=kbd event1 B: EV=120003 : 20-REP 17-LED 1-KEY 0-SYN B: KEY=7 ff800000000007ff e0b2ffdf01cfffff fffffffffffffffe Supports 131 keys B: LED=1f : 4-KANA 3-COMPOSE 2-SCROLLLK 1-CAPSLK 0-NUMLK I: Bus=0003 Vendor=046d Product=c521 Version=0111 N: Name="Logitech USB Receiver" P: Phys=usb-0000:00:02.1-4.6/input0 S: Sysfs=/class/input/input3 H: Handlers=mouse0 event3 B: EV=7 : 2-REL 1-KEY 0-SYN B: KEY=ffff0000 0 0 0 0 Supports 16 keys B: REL=143 : 8-WHEEL 6-HWHEEL 1-Y 0-X I: Bus=0003 Vendor=046d Product=c521 Version=0111 N: Name="Logitech USB Receiver" P: Phys=usb-0000:00:02.1-4.6/input1 S: Sysfs=/class/input/input4 H: Handlers=kbd event4 B: EV=f : 3-ABS 2-REL 1-KEY 0-SYN B: KEY=7fff002c3027 bf00444000000000 1 f808837c000 667bfad9415fed 8e000000000000 0 Supports 88 keys B: REL=40 : 6-HWHEEL B: ABS=100000000 : 32-VOLUME I: Bus=0019 Vendor=0000 Product=0002 Version=0000 N: Name="Power Button (FF)" P: Phys=LNXPWRBN/button/input0 S: Sysfs=/class/input/input5 H: Handlers=kbd event5 B: EV=3 : 1-KEY 0-SYN B: KEY=10000000000000 0 Supports 1 key I: Bus=0019 Vendor=0000 Product=0001 Version=0000 N: Name="Power Button (CM)" P: Phys=PNP0C0C/button/input0 S: Sysfs=/class/input/input6 H: Handlers=kbd event6 B: EV=3 : 1-KEY 0-SYN B: KEY=10000000000000 0 Supports 1 key I: Bus=0003 Vendor=046d Product=c626 Version=0110 N: Name="3Dconnexion SpaceNavigator" P: Phys=usb-0000:00:02.1-2.3.1/input0 S: Sysfs=/class/input/input12 H: Handlers=event2 B: EV=20007 : 17-LED 2-REL 1-KEY 0-SYN B: KEY=3 0 0 0 0 Supports 2 keys B: REL=3f : 5-RZ 4-RY 3-RX 2-Z 1-Y 0-X B: LED=100 : 8-MISC I: Bus=0003 Vendor=0f30 Product=010b Version=0110 N: Name="Jess Tech GGE909 PC Recoil Pad" P: Phys=usb-0000:00:02.1-2.3.4/input0 S: Sysfs=/class/input/input13 H: Handlers=event7 js0 B: EV=b : 3-ABS 1-KEY 0-SYN B: KEY=fff00000000 0 0 0 0 Supports 12 keys B: ABS=30027 : 17-HAT_0Y 16-HAT_0X 5-RZ 2-Z 1-Y 0-X
The last two entries are the SpaceNavigator, and the USB Gamepad I've got plugged in for, uh, testing. yeah.. testing.
And for those of you about to squawk... yes, I DO have a "Das Keyboard", and I love it. Keeps most people from bothering my computer too, and has improved my typing speed up further in the triple digits.
Interesting to note that my Logitech mouse somehow (!) has 88 keys on it. Hey... 88 keys... a PIANO?!?
This is in addition to the 16 keys it reports in the previous entry. Really weird!
Anyways...
If you look at the Keyboard entry, and the SpaceNavigator entry, you can see the LED's they support.
The SN supports the 'MISC' labelled LED, actually bit 8, and the keyboard supports KANA, COMPOSE, SCROLL, CAPS, NUM. Bits 4-0.
The leading numbers for each breakdown indicate which bit they are represented by.