IIUC, most people here are talking about hacking the keyboard itself. Another option is to hack the mapping of key presses to emitted codes, at the OS level. Windows allows you to do this using the SetWindowsHookEx() process. I set this up to do my mapping back in the days of Win3.1, and it's worked more or less unchanged since then.<p>My mapping resembles the one described in the article, e.g. ^K --> <up arrow>. (And ^U maps to a series of 8 up arrows, for faster movement.) But I have two states, one in which a ^K simply moves the cursor one line up, and one in which it selects while doing that (and the same for the other keys that do <left>, <right>, <down>, <pgup> etc.). I toggle between the two states using ^Q (and ^C, ^X and a few other keys go to the non-selecting state from the selecting state).<p>The last time I looked, other keyboard mapping techniques I've seen don't have this 2-state possibility, or even in some cases to output a sequence of codes.<p>One advantage of doing the mapping this way is that it's hardware-independent: I can use it not only on my home desktop, but also on laptops, my office computer, etc., anywhere I can run a tiny .exe + .dll.