Thoughts from the office by Ed Ball
Tuesday, January 27, 2004

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.

1/27/2004 4:41:48 PM (Pacific Standard Time, UTC-08:00) | Comments [4] | Keyboard#
1/28/2004 8:25:23 AM (Pacific Standard Time, UTC-08:00)
FWIW, Word actually has a very extensive set of US-101 shortcuts for accented characters that's pretty easy to use:

CTRL+' then [aeiouAEIOUYy] - gets you the acute accent
CTRL+` then [aeiouAEIOU] - gets grave
CTRL+: then [aeiouyAEIOUY] - umlaut
CTRL+^ then [aeiouAEIOU] - circumflex
CTRL+, then [cC] - C-cedilla
CTRL+& then [aoAOs] - ae/oe ligagure or szett (German sharp 's') ligature
CTRL+~ then [NnOoAa] - Spanish and Portuguese tildes
CTRL+/ then [Oo] - slash O

And these are great for when you are typing code examples into a Word doc and you have to turn off that annoying "Auto Format As You Type > Replace Straight Quotes With Curved Quotes" feature, but you still want curved quotes in plain text:

CTRL+` then " - curved open dblquote
CTRL+' then " - curved close dblquote
CTRL+` then ` - curved open quote
CTRL+' then ' - curved close quote

There are others, but I've never had to use them. In any case, it's pretty easy to remember; you type CTRL then the key that most looks like the accent you want, then you release and type the letter you want accented. Outlook and MSN use this same system.
1/28/2004 8:52:16 AM (Pacific Standard Time, UTC-08:00)
Works in Messenger too!
Ken Smith
7/10/2005 7:13:50 PM (Pacific Daylight Time, UTC-07:00)
Hmm, there's always been a hard-printed "Alt Gr" key (why "Gr"? "Greater" or something?) on EN-UK keyboards; and Alt Gr+[vowel] gives an acute accent most of the time in whatever application you're using (although it quite often regurgitates either an "unknown" glyph box instead of it, or infront of it -- like with é in MSNM and stuff). And does anyone know why Shift+2 maps to @ on EN-US, but it's Shift+[apostrophe] for me? It's annoying, especially when someone's just installed their version of Windows, and you can *tell*, through frustration, that they've left it set to the default US layout. It's usually quick to correct though; and XP seems to be better at detecting it natively. Which is a good thing, when you no longer get @some quoted text@ instead...

Having thought about that though, why the hell put the apostrophe (') and @ symbol characters together on the same key, in the first place? Although, I suppose the double-quote character is more common in usage, and it's usually easier to access keys in the top row once you get used to it, as opposed to having to fiddle around to the middle right. Mm, some of the "subtleties" between the dialects are confusing...

I also find that "Auto-Quote-Determine" feature annoying; such as when it won't budge and you want a *closed/open* quote to *stay put* damnit!
trojjer
11/28/2006 2:47:38 AM (Pacific Standard Time, UTC-08:00)
You can disable the layout switching keystrokes in Windows XP. It works well enough for me.

Control Panel > Regional and Language Settings > Languages > Details > Shortcut Keys.

Just disable both checkboxes.
Andre
Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):

Search
Archive
Links
Categories
Administration
Blogroll