I think it is safe to say that most Windows XP users in the United States use the standard English "US" keyboard. (Raise your hand if you use "United States-Dvorak". I didn't think so...)
Unfortunately, the standard "US" keyboard has limitations. The word "résumé" is a perfectly valid English word, and yet there's no easy way to type an accented "e" with the "US" keyboard. If you happen to be running Microsoft Word, there's probably a keyboard shortcut, but there's not really any universal way to enter an accented "e" without using Character Map or memorizing an Alt+Number key sequence.
Enter the "United States-International" keyboard. It's a fun keyboard layout that supports all sorts of international characters. The right Alt key is now called "AltGr", and is used as an additional "shift key" to provide access to these characters. This layout also intuitively supports accented characters with the use of "dead keys". For example, if I hit the 'single-quote' key followed by the 'e' key, I get "é".
Unfortunately, this blessing is also a curse -- now I can't type a single-quote unless I hit the spacebar after it. Not good. So, I've been installing both the standard and international keyboards, assigning keyboard shortcuts to each of them, and switching between them as necessary. The trouble with this solution is that my active keyboard layout has a habit of switching without my knowledge. Perhaps I'm accidentally hitting the layout switching keystrokes, perhaps Windows is getting mixed up; I don't know, but it's annoying.
Thankfully, Microsoft provides the Microsoft Keyboard Layout Creator for free. I decided to create my own keyboard with the best of both worlds. I launched the Keyboard Layout Creator, loaded the "United States-International" keyboard, and restored the "dead keys" on the keyboard to their standard "US" keyboard behavior (specifically, the back-quote, single-quote, double-quote, tilde, and caret). So as to not lose the valuable functionality of these dead keys, I moved those code points to the same keys, but with the AltGr shift state. That is, instead of hitting 'single-quote' then 'e' to get é, I hit 'AltGr+single-quote' then 'e'.
So, I'm using my new keyboard exclusively. The only problem I have found with my solution is that the right Alt key, now AltGr, no longer functions as an Alt key. For example, if I try to hit Alt+F to get to the File menu, I have to use the left Alt key rather than the right. I can live with that.
If you'd like to try out my keyboard firsthand, download and install the Microsoft Keyboard Layout Creator, and open the attached keyboard layout file. You can play with the keyboard layout by selecting "Test Keyboard Layout" from the Project menu. Feel free to add your own keyboard code points; for example, AltGr+. might be a fun way to insert a bullet!
If you decide you want to use the keyboard, choose "Build DLL and Setup Package" under the Project menu, and install the keyboard with the generated installer. Reboot (or at least log out and back in), find the keyboard settings under the Regional and Language Options control panel, and replace your "US" keyboard with the "United States-International (MyKeys)" keyboard. You can always switch back later, but hopefully you'll be running Character Map a little less often from now on.
MyKeys.klc (16.37 KB)
Update: More information in my next post.