The german keyboard layout under Windows makes use of dead keys. Disabling them under Windows is pretty cumbersome.

A key which is designated as a dead key works like a kind of meta key. Like the Shift key for instance. If you press a dead key, e.g. a grave (`), nothing happens. Only after you press another key, one of which can be used in conjunction with a grave, an actual character is printed to the screen. Pressing `+ e will give you an è for instance. Characters like ^ (circumflex), ` (grave) or ´ (acute) are actually diacritical marks.

Dead keys might be handy if you often have to type in characters such as è or é. Well, I don’t. Actually programmers use the grave accent symbol as a separate character (i.e., not combined with any letter) for a number of tasks. In this role, it is known as a backquote or backtick. Take the markdown markup language for instance. Inline code should be enclosed between backticks. And because I make heavy use of backticks I wanted to disable dead keys… As it turned out this is not an easy task if you are running Windows.

Up to and including Windows 10 the only solution I know of involves creating your own keyboard layout. You can download the Microsoft Keyboard Layout Creator (MSKLC) from here. Administrator privileges are required to install this tool.

After you have installed it, start the program and choose File -> Load Existing Keyboard. Load the keyboard layout you want to modify. Then right click on the dead keys you want to disable and uncheck Set as dead key. Keys designated as dead keys are highlighted in bright grey. Be sure to cycle through all shift states to catch all dead keys:

Default german keyboard layout.

Default german keyboard layout.

When you are done save the new keyboard layout using File -> Save Source File. If you want to make any changes to he layout in the future you can open this project file. But to be able to actually install this new keyboard layout you have to do the following steps:

  1. Click Project -> Build DLL and Setup Package.
  2. Execute the setup.exe from the resulting DLL and Setup package. Again, you need to have administrative privileges.

Next, configure Windows to actually use the new layout:

  1. Open the the Windows control panel.
  2. Choose Change input methods (section “Clock, Language and Region”).
  3. In the dialog “Change your language preferences” click Options. The Options button / link is besides your language.
  4. In the “Language options” dialog below the section “Input method” add your newly installed keyboard layout. Mine is called “Deutsch - no dead keys” for instance.
  5. Remove any other keyboard layouts.
  6. You are done, finally.

These are screenshots of the previously mentioned dialogs:

The german Change Your Language Preferences dialog.

The german Change Your Language Preferences dialog.

The german Language Options dialog.

The german Language Options dialog.

Further downloads

  • My MSKLC project file. Based on the german default layout. Dead keys are eliminated.
  • ZIP archive containing the installer created from my custom keyboard layout. If you don’t want to install the MSKLC and create you own german keyboard layout without dead keys you can use the layout provided by this installer.
  • Log file produced during installer creation.

Further notes

  • If dead keys are enabled and you want to print a diacritic mark alone to the screen (a backtick for instance) you have two options:
    • Press it’s key twice. The diacritc mark will be printed to the screen twice.
    • Press it’s key + space. The diacritc mark will be printed to the screen once.

Linux

Just one more thing. Under Linux when running KDE (K Desktop Environment) disabling dead keys is as simple as selecting the desired variant in a drop down box:

KDE4: Disable dead keys.

KDE4: Disable dead keys.