Keyboard Troubles

If you are a programmer, you want to type things like these a lot:


Or you have to, even if you don’t really want.

Unfortunately, if you write text in German, you have to type these characters a lot:


A German keyboard makes it very easy to find these. In fact, we have three special keys entirely reserved for the first six (the lowercase and uppercase Umlaute) and a fourth that the ? shares with the seventh, which–in case you didn’t know–is a peculiarly German ligature representing “ss” in some special situations. It’s called a “sharp” letter s, or sometimes (erroneously, because it’s got nothing to do with the letter z) an “sz”, pronounced “es-zett”. But I digress.

My point was that a German keyboard is perfect for quickly finding our funny special characters, but there’s a price, and a particularly high price for a programmer. Those German characters are using up some of the most conveniently placed non-alphabetic keys on the keyboard. On a US keyboard []\;’,./-= can be all produced with a single key stroke, and using the shift key in addition gives you all the rest of the special characters relevant for programming.


US keyboard layout. Special characters for programming are easy to reach. But no Umlaute!

Conversely, a developer using a German keyboard has to employ insanely inconvenient key combinations to produce even some of the most frequent ones, including Ctrl-Alt-7 to Ctrl-Alt-0 for {} and [], and Ctrl-Alt with the key next to 0 (which is ß in German and minus/underscore on the US keyboard) for a backslash! (Alternatively, Ctrl-Alt can be replaced with AltGr, but that’s hardly more practicable.) In fact, the only special chars relevant for programming a German programmer can type using a single key are ,.+-#<. And actually the <> are particularly inconveniently placed on a special key to the left of the letter Y (which of course on a QWERTZ keyboard is where the QWERTY has the letter Z).

Enter key on a German keyboard

German laptop keyboard. Try and find the special characters needed for programming!

So a German keyboard could be hardly more uncomfortable for programming. Unfortunately, a standard American keyboard makes it next to impossible to type German Umlaute.

Which means a German programmer is in a bind. He can either programm comfortably, or type German, but not both on the same keyboard. Unless he resorts to using the “US International” layout which has all the special characters as well, but comes with a catch of its own: Dead keys.

In case you’ve never been using them, they can be fairly irritating at first. On a US international keyboard if you hit the quote key, nothing happens. The surprise comes if you press the next key. Then the quote becomes combined with that key, producing things like a vowel with an acute accent (say é if you did ‘ and then e), or an Umlaut (ö if you type ” and then o). In fact, you can put an accent or a diaeresis (or a tilde for that matter) on almost any old thing with the US international keyboard dead keys, and produce this ẅ if you like, or this ý, or this ĩ, or even this ǜ. I honestly don’t know if they exist in any known language. In addition, the US international layout has quite a number of special characters as third set on regular letter keys, accessed using the right Alt key, including the German Umlaute und ß.


US International keyboard layout. Red symbols signify dead keys. Blue symbols are accessible using right Alt, or AltGr. Courtesy of CC BY-SA 3.0,

If you just want a quote however, you have to press the space key right after the quote key. And that’s what I found so vexing about the US international keyboard layout that I didn’t really consider it for a long time after I had realized that a German keyboard sucks when programming. For the first two terms as CS student I relied on switching keyboard layouts frequently. I had a key (the menu key, if memory serves) reserved for that, and would on occasion switch as frequently as every few seconds. German keyboard for writing text; American keyboard for writing code.

It was hell because I soon got royally confused. As reported earlier, I have been using typewriters and computers for over 40 years. As result, even though I never properly learned to touch write, I was a very fast typer–on a German keyboard. Constantly switching from German to US keyboard layout however was a heavy setback. Granted, I would never have touch-typed the really special characters anyway, on any keyboard. But the more common stuff, for no particular reason, is still subtly different between national keyboard layouts. And whenever I know it’s easy to confuse two things, that knowledge alone makes me confuse them more often than not. Apart from the obvious swapping of Y and Z between QWERTY and QWERTZ, the American keyboard has the quote next to the enter key, while the German keyboard has it at Shift-2. But the worst are parentheses. They’re one key offset. A German keyboard has them at Shift-8 and Shift-9, and an American keyboard at Shift-9 and Shift-0. Very soon I could no longer type fluently on either a German or a US keyboard.

Clearly this was a dead end. For a while there I was looking into a creative way out, like a radically different keyboard layout such as Neo. Or creating a special layout of my own, something that merged easy access to programming special characters with the availability of German Umlaute. But in the end using a non-standard keyboard the way I mean to use a keyboard–typing intuitively, fast, and preferably without looking–would have meant I could never have used anybody’s computer but my own–clearly no option while studying, at least not as long as we were doing computer-based exams.

So in the end I opted for the lessest of three evils. If the alternatives were hand cramps for doing Ctrl-Alt-something three times for every line of code, or having no German Umlaute at all, clearly dead keys were only a slight inconvenience in comparison. So I started using the US international layout exclusively, and after only a couple of years I am now typing fluently and mostly by touch, again. At least for normal text. For the special characters, I usually look. So far. I am still learning.

Which means I really benefit from a physical US keyboard. No problem at home, of course. I bought me one for my desktop computer already a couple of years ago and love it.

Laptop computers are not quite so easy. My trusted 2012 vintage HP ProBook has a German keyboard, so even when looking I run into the same old problems, particularly the offset parentheses. It’s also hard to find the -_=+ characters. They’re somewhere out there beyond the 0 key, is all I know. It usually takes me a couple of tries to press the right one. Not good.

I had a brief moment of happiness when the wife of my wife’s brother passed on her beautifully slim (but slow) HP UltraBook. She bought it off her Dutch employer, and for some reason it has a physical US keyboard. (OK, Wikipedia says it’s common in the Netherlands to use the American international keyboard. Lucky Dutchmen and Dutchwomen.) I used it gladly during the fourth term. However, doing more involved programming stuff brought it to the limits of its meager 4 GB RAM. And once I started working in the fifth term and was given a fast 24 GB ThinkPad with a HD screen by my employer, it made more sense to use that for study-related things as well. Particularly since my schedule was such a mess last term and there were days when I had to attend seminar after working. Really no point in lugging around two laptops.

Only unfortunately my work computer not only has a Windows system and comes with a ban on installing a second OS, so I have to use a Linux VM to do my study-related programming and all. It also has, inevitably, a physical German keyboard. Back to square one.

For a while there I simply suffered and hoped I’d, in time, become fluent touch-typing an American keyboard even for the special programming chars. But inevitably I look at the keys when I find I typed the wrong parentheses for the third time in a row, and then a physical German keyboard is no help at all, unless I do mental somersaults of the kind “this is an opening parenthesis so it should in fact be a closing one, or was it the other way round?” This really spoils my productivity when coding.

Day before yesterday I took my physical US keyboard to work. Good thing we have a personal locker in exchange for not having a personal desk. I do use a USB keyboard (and a second screen) anyway when I work at the office. So I’m just using mine now. Fine.

There still remains the laptop keyboard when I am  at UAS or on the way to work in case I’m using public transport for some reason. So I an final act of desperation (or resistance?) I ordered me keyboard stickers. And while I was at it, keyboard stickers that also show the special keys on the US international layout, which no physical keyboard that I could find on the internet does out of the box. I’m not sure I am allowed to put stickers on the keys of my work laptop, but this is certainly one of the things one better does without asking and risking a defensive No if in reality chances are high nobody will ever care.

Yet I still haven’t applied the stickers because when looking at them I became aware of a final irony: German keyboards don’t just have different symbols printed on the same keys. In two places, the key layout itself differs. We have a larger enter key that overlaps the space of the pipe/backslash key in row 2 of a US keyboard (the single quote/hashtag key on a German keyboard), which instead moves next to the quote key on row 3.

Enter key on a US keyboard

Enter key on a US keyboard

Enter key on a German keyboard

Enter key on a German keyboard

Also, our left shift key is only half-size compared to the American version, leaving room for the <> key to the left of the Y (in the Z position). If a US layout is used, this key pointlessly duplicates the pipe/backslash key. So it seems we do, in fact, also have an extra key? Very confusing. Of course the stickers I bought don’t have the pipe/backslash icon twice.

Left shift on a German keyboard

Left shift on a German keyboard

Left shift on a US keyboard

Left shift on a US keyboard

Reluctantly I come to the conclusion that, in these days of globalization, and particularly for programmers, the world would be an awful lot easier if we’d just all speak and write English all the time. Or at least use the same standard keyboard.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s