The standard german keyboard layout sucks for programming.
AltGr+8, which requires contorting your hand in unspeakable ways.
There is also this beautiful layout called Neo, which has, among other things, a whole layer with every special character a programmer's heart desires—arranged in an easy to reach fashion.
However, Neo rearranges all the other keys too.
Which is good for ergonomics, but has the downside of messed up shortcuts in various applications and needing to learn a whole new layout.
Neolight tries to make the best of both worlds by adding a third (and forth) layer, while keeping the standard qwertz layout intact as far as possible.
- The third layer is activated by
#and contains special characters needed for programming.
- The fourth layer is activated by
Menuand contains navigation keys.
All other keys stay the same. In fact, Neolight is not necessarily tied to the german layout and you can use it in combination with any other layout, provided your physical keyboard has the right set of keys.
Variant with additional escape keys
There is also a variant that has additional escape keys, which are convenient in Vim. They are located at:
+on the standard german layout (the key above the right Mod3 in the image above)
Installation and Usage
On Arch Linux Neolight is available as an AUR package here.
On other Linux distributions you can install it by running
./linux/install.sh as superuser (and
./linux/install.sh --uninstall for removing it again). Depending on your desktop environment you might need to log out and in again (or restart) for it to be fully available.
This will add the following XKB layout and options:
XKB layout (only german)
The standalone layout is called
neolight, which also has a variant called
de_escape_keys. They can be (temporarily) activated via:
setxkbmap -layout neolight -variant de setxkbmap -layout neolight -variant de_escape_keys
To check the current XKB config:
XKB options (compatible with other layouts)
The XKB options can be combined with any keyboard layout and add the third and forth layer to them. They are called
neolight:escape_keysand can be (temporarily) activated via:
setxkbmap -option neolight setxkbmap -option neolight:escape_keys
Activating the layout or an option more permanently depends on your system:
Neolight should show up in the german layout variants as "German (Neolight)".
If the new layers do not work properly and you have multiple layouts, make sure to set Neolight as the first one. Some other ways to fix that particular problem are mentioned in the Neo FAQ.
To set one of the options, add them to the
dconf key at
['neolight', ... other options] or
['neolight:escape_keys', ... other options].
The dconf-editor utility helps with that.
Note: These options only work for the first layout, should you have multiple. There are ways around this, but I have not added them yet.
Neolight should show up in the IBus Preferences (
ibus-setup) as "German (Neolight)".
I haven't found a way to set individual XKB options there. A workaround would be setting "Use system keyboard layout" and configuring the XKB layout/options in a different way.
If Neolight is missing from your layout selector, let me know and I'll try to add support for it.
The Windows version uses Autohotkey. You can either install Autohotkey and run
neolight.ahk, or run the compiled
Both can be found on the release page.
Then just add it to autostart.
Similar to the linux XKB option version above, this just adds the layers on top of any existing layout, no matter which.
How to Learn
If you want some typing practice, have a look at typing.io, which lets you type open source code instead of just regular text.
Neo has a variant called NeoQwertz that tries to do something similar: it has all the features of Neo, but keeps the alphabetic keys from qwertz.
This does mean that e.g.
Shift+2 does not produce
" and no regular
But if that is fine for you, you might want to just go ahead and use NeoQwertz (which comes preinstalled with X11 on most linux distributions!).