Writing non-English languages with a QWERTY keyboard
My first experience on a keyboard was on a Teletype Model 33. This was to learn how to program, not how to type, which I still haven't mastered... But I did develop a preference for mechanical keyboards. When IBM introduced to IBM PC AT (Advanced Technology), they also introduced the IBM Model M keyboard. I have been using these keyboards ever since. My Model M's have 101 keys in QWERTY layout and no key with a logo on it (some people call this the Windows key).
My native language is Dutch, but I read and write a few others. Most of these laguages have 'foreign' (accented) characters, which obviously are not available on the keyboard. Starting with Windows 3.0, there was a solution: The US International layout. It uses dead keys. A dead key no longer generates a character, it's a prefix for the next character. An apostrophe (') followed by the letter e will generate é (e-acute). Great stuff! But what if one needs to type an apostrophe? Just type ', followed by a space. Easy but very annoying for programmers (like me), who have to type quotes and double quotes all the time.
The US International layout does have another feature: Most keys will generate special characters when pressed while the right Alt key is held down. (The right Alt key is marked AltGr on most localized keyboards.) No sequence of ' and e needed, but just AltGr-e. The number of accented characters (in most languages) is rather small. The letter é is common in French, but its frequency is only 1,5%. I started wondering what would happen if I changed the Microsoft design so that the dead keys were no longer dead (allowing me to program freely) but still would have é at my fingertips through AltGr-e. Removing the dead keys posed a problem: ë (which I use in Dutch) is not available through an AltGr combination but only through a dead key.
I experimented with how awkward it would be if I used AltGr to get to the dead keys as well: for à, I would have to type AltGr-`, followed by a. Awkward indeed, but à is not very common in Dutch (fortunately). I got rid of the very annoying " followed by a space to get a single doublequote AND still had access to all characters! I used this layout for a number of years, modifying the .../X11/symbols/us file after every new installation of Linux.
Some people around me noticed my layout, which made me think of submitting it to ... (I didn't know). With some help, my proposal was accepted. Within one or two releases, I was able to stop modifiying files, but just select "International AltGr dead keys" from a menu. Great.
Years later I recieved an e-mail from user Enno, who writes German a lot more than I do. His issue (obviously) was with the (common) letters ä, ë, ö and ü. They're available, but all over the keyboard. A somewhat logical layout would be nicer, but that would require breaking the Microsoft 'standard'.
Which made me think. What makes the Microsoft International keyboard eh... international? What rationale is behind having support for the letter ð (eth) - a letter used in Old English, Middle English, Icelandic, Faroese - languages with few speakers. The letter ã (atilde) is very common in Portugese, but that is only accessible through a dead key. Or, as Enno put it: ® (AltGr-r) is only common in Redmond.
We tried to come up with a layout that would support more languages a little better. We started looking at letter frequencies. (We used this for lack of a better source: the table at the bottom of the page suggests that ï has 0% occurrence in Dutch, which I know to be incorrect.) In the MS layout, each vowel has the acute version 'on' the vowel. AltGr-a produces á, AltGr-e becomes é. Makes sense. But where to put the other variants so that the user will remember?
Eventually, we decided on a few 'ground rules':
This layout supports English (of course), Danish, Dutch, Finnish, French, German, Italian, Norwegian, Portugese, Spanish and Swedish in the sense that all accented characters in the letter frequency table are available as one AltGr keystroke.
For Turkish, lacking letters are: ğ (AltGr-shift-9 followed by g) and ş (AltGr-, followed by s). The important Turkish dotless ı is available as AltGr-m. (A large number of Turks live in Western Europe.)
The layout is called altgr-weur. For languages of Eastern Europe, someone (who understands those languages) could make an altgr-eeur.
You will need superuser access and you will need to know where the X11 directory is on your distribution for this to work. If you know those, you can try the layout for yourself. (This is written in July of 2016 - please check if the Western European layout is available in the keyboard configuration tools before you start modifying files.)
Change your current directory (this directory is not the same on all distros) and start editing the file 'us' as superuser (you are now warned). (Use any other text editor you like: nano, gedit...)
Insert altgr-weur just below altgr-intl (or at the very bottom of the
Insert altgr-weur_evdev.xml just below the section of
Add the following line just below altgr-intl
On some (Debian based) distros you could:
But a reboot seems to work on all systems.