This is going to sound wierd at first, but I found a really cool usb controller. Let's see if I can find a link to it... here it is
Now this is the wierd part - the first thing I thought when I saw this was "how sweet would it be to program an interface so that each button can actually type out a C++ command for me?"
15 commonly used commands, then I could use the d-pad as a modifier to have 15 * 8 = 120 more commands and/or shortcuts. Total 135 commands on one hand. Can you imagine how fast that would make programming, er, well, anything?
Now the heavy stuff... How would I do it? I can't just use the cd that comes with it, I have linux, and I doubt the cd that came with it would allow me to go to text anyways. How does one go about programming a device interface? I'm only experienced in C++ so I decided to go here, since there are several forums I could've gone to for this.