The reason you want to avoid the rodent is that when your coding while chemically modified you will want to minimize any possible distraction or break in concentration. The slightest wavering in your attention will easily explode into a ten minute setback. If you can keep yourself on-track then I find that productivity is greatly increased, and with the properly trained mindset bug density on first pass is usually drastically decreased.

I once read that using a mouse causes endless distractions. Always wanting to improve my ability to focus and code, I decided to try to eliminate the mouse from my day to day usage. Being a web dev that lives in the terminal made it pretty easy: I would use screen + vim for the most part, but sometimes I would need to switch to another window to refresh a page or run a web search. Using alt-tab would give me inconsistent behavior, since it would cycle between windows in order of recency. I had already set my window manager to use focus-follows-mouse behavior, so I didn’t have to click into a window to start typing, but I found it to be a nuisance to move my hand to the mouse, then move the mouse and then move my hand back to the keyboard.

Mousekips was a program I wrote that would draw an overlay over the screen, mapping each key on the keyboard to a coordinate on screen. Pressing that key would jump the mouse to that position and then you could dismiss the overlay by pressing Enter. This made it so I didn’t have to use the mouse to switch windows.

Of course, nothing is ever that simple: drawing overlays and capturing keyboard input globally was a pain in the &*#, fraught with deadlocking perils and lost keyboard input. It took me a while to iron out the bugs and even then, it would sometimes steal the input indefinitely (every few days). I’m not sure if I ever fully fixed it (I think I did), but when I learned about tiling window managers and xmonad, I switched over and never looked back - now I can always switch to any window I want with just a couple keystrokes.