In this post, I'm referring to a Linux based programmer. I can't offer any advice about any other platform, since I simply have no experience.
Going about your work without the mouse is (except for some special circumstances) both faster, and fun. I've spent a lot of time on going rodent-free, here are some of the things I use
- Colemak. This is probably the most important, along with a good keyboard. If you're going to be spending a lot of time at the keyboard, you'll want to change to a keyboard layout that is actually designed in order to increase speed and reduce RSI. The alternative is Dvorak, and I've got nothing against it - I just like Colemak.
- StumpWM. I used to use Ratpoison, which had similar goals, but has been superceded by Stump in almost every way. Moving through windows is a breeze with StumpWM. Fully customizable, and even has provisions to play nice with programs that are not so nice themselves.
- A good terminal. I use urxvt, but it's important that you choose one, instead of having one chosen for you. Get to know what your terminal can do, and use it well. eg. I just found out that urxvt can use perl to search in the terminal session, no longer do I have run a command again and redirect to a file so I can grep through it.
- A good set of command line programs. Of course this is very subjective, and I don't want to start editor wars and the like. But choose what you want to use, and learn how to use it. I keep finding new tools everyday, and occasionally write my own.
As a caveat, the only program I use that is not exactly built for keyboard use, is my browser, Opera. However, it is in fact pretty easy to use with the keyboard, using its spatial navigation and abundance of keyboard shortcuts. I've tried Conkeror and Vimperator, maybe they went overboard for me. I'm no graphics designer, so GIMP doesn't give me too much trouble either.
Having a good setup for keyboard-only use takes a lot of time and effort to get right, but it's well worth the effort.