Red Echo

November 26, 2009

How do you type non-Latin characters on a standard QWERTY keyboard? In Mac OS, the system hasn’t changed in twenty-five years: holding down the “option” key shifts to an alternate keyboard mapping, where accent characters are “sticky” and combine themselves with whatever letter you type next.

On Windows, the system is so arcane it is functionally useless: you have to hold down “Alt” and then type in a four-digit numeric code, using only the 10-key pad, not the normal number keys!

I’ve never figured out how to do this on Linux before, but apparently the Linux solution is remarkably clever:

You pick a key on your keyboard you don’t use much, like [Insert], [CapsLock], or [menu], and make it the “compose key”.

Then to make any character, you just hit the compose key, then type the two obvious keys that, when combined, make up the character.


  1. You’re wrong about Windows, my friend. You can use AltGr like you mentioned, but you can also use a neat little trick where you type the code point (in hex) and hit Alt+X (though this does depend on the application — Word and WordPad both use it). But it is still incredibly lame because no one uses code points.

    The big thing to keep in mind is that on Windows that people typically use IMEs (input method editors) for entering keys that are not on the keyboard. This is significantly more powerful, since it works not only for latinized languages (where you compose diatrics with letters), but all languages. Think about how you’d input Arabic text, or East Asian text using the manner described for Mac OS. ;-)

    Comment by Aaron Ballman — November 27, 2009 @ 7:27 am

  2. The part that bugs me about the Windows approach is not so much the numeric keypad as the part where you have to enter a four-digit code. There’s no way I’m going to remember that the code for the copyright symbol is 0169 unless I use it every day – I’d have to look it up every time I wanted to use it, like I just did.

    With the Mac approach, most of the option-keys have some mnemonic relationship with the letter they live under. Option-A gives you å, option-O yields ø, option-E, U, and I stand for acute accent, umlaut, and grave accent, option-N is the diacritical tilde, and option-S yields ß. Even some of the punctuation characters work this way: shift + comma = <, so option + comma = ≤; shift + 4 = $, so option + 4 = ¢; shift + 1 = !, so option + 1 = ¡. Option + equals is ≠, Shift+8 is asterisk, so option+8 is bullet, and option+shift+8 is degree. It doesn’t always work – there’s no good reason I can tell that the copyright symbol should be option + G – but the “keyboard viewer” applet that comes with the Mac OS makes it easy to figure out what lives where.

    This is the design feature I like about the “compose key” solution: it’s explicitly mnemonic, in that there is supposed to be a direct visual relationship between the characters you type and the composed character you get.

    You’re absolutely right about the input method approach for multilingual text entry. What irritates me here is not the 99.9% case of typing normal text, but the infrequent situation that calls for a non-ASCII symbol. I remember once writing an email where I wanted to say “96°” – but couldn’t figure out how to enter the degree character. I poked around, got frustrated, gave up and wrote “96 degrees”. Not the end of the world – but not what I wanted, either.

    Comment by mars — November 27, 2009 @ 12:30 pm

  3. Yeah, I agree that for the occasional non-ASCII character, the Mac way of doing things (and the Linux way) is a lot more handy than the Windows way. No one remembers the frickin code points!

    But, the thing is, occasional non-ASCII characters are so far outside of the normal case that I’m glad Windows wastes no cognitive time on them. On Windows, there are two ways to solve the problem you’re looking for. 1) If you’re writing a document and need a symbol, then there’s a symbol editor built right into Word. Just pop it open and pick the symbols. They even break them down into categories for you. 2) If you’re not in Word, you can pop open Character Map (it’s right in your Start menu!) and find the character you want — you can even enter the character via copy and paste from it. Even handier, you can search for characters via text. Want the degree symbol? Type in degree and hit Search. Ta da!

    Comment by Aaron Ballman — November 28, 2009 @ 10:32 am

  4. Ah, so it’s an application-level solution rather than a system-level solution. Well, that’s not so bad; I’ve never used Word but I guess it isn’t unreasonable to expect that most Windows users will do most of their text editing in it. Thanks for the explanation!

    Comment by Mars Saxman — November 30, 2009 @ 11:55 am

  5. In Microsoft Word & Outlook (for Windows) there’s an easily remembered way of inserting accented characters — hold down control while typing the appropriate accent, then type the base letter:

    [CTRL-‘][e] = é
    [CTRL-`][e] = è
    [CTRL-~][n] = ñ

    — Geoff

    Comment by Geoff — November 30, 2009 @ 4:52 pm