Coder Social home page Coder Social logo

neolight's Introduction

Neolight

The standard german keyboard layout sucks for programming. For example [ is 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 Capslock and # and contains special characters needed for programming.
  • The fourth layer is activated by < and Menu and 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.

The Layout

Layer 3

Layer 4

Variant with additional escape keys

There is also a variant that has additional escape keys, which are convenient in Vim. They are located at:

  • Mod3+q
  • + on the standard german layout (the key above the right Mod3 in the image above)
  • Mod3++

Installation and Usage

Linux

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:

    setxkbmap -query
    
  • 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 and neolight:escape_keys and 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:

Gnome

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 /org/gnome/desktop/input-sources/xkb-options as ['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.

IBus

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.

Others

If Neolight is missing from your layout selector, let me know and I'll try to add support for it.

Windows

The Windows version uses Autohotkey. You can either install Autohotkey and run neolight.ahk, or run the compiled neolight.exe directly. 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.

Alternatives

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 AltGr layer. 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!).

neolight's People

Contributors

mihi314 avatar syphdias avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

neolight's Issues

Trouble with CapsLock

Hi, I'd love to use mainly the 3rd layer but I am having trouble to get any change in behavior. Especially the Capslock acts like normal instead of becoming a modifier. I installed neolight through AUR and tried to select it from the ibus input picker at first but it didn't show up. I tried to do it manually but with not luck. Do you have any ideas what I am doing wrong? Maybe the xkb-options are wrong?

localectl
   System Locale: LANG=en_US.UTF-8
                  LC_NUMERIC=de_DE.UTF-8
                  LC_TIME=en_GB.UTF-8
                  LC_MONETARY=de_DE.UTF-8
                  LC_PAPER=de_DE.UTF-8
                  LC_NAME=de_DE.UTF-8
                  LC_ADDRESS=de_DE.UTF-8
                  LC_TELEPHONE=de_DE.UTF-8
                  LC_MEASUREMENT=de_DE.UTF-8
                  LC_IDENTIFICATION=de_DE.UTF-8
       VC Keymap: de-latin1-nodeadkeys
      X11 Layout: de
       X11 Model: pc105
     X11 Variant: nodeadkeysibus engine
xkb:de:nodeadkeys:deudconf dump /org/gnome/desktop/input-sources/
[/]
show-all-sources=true
sources=[('xkb', 'de+nodeadkeys')]
xkb-options=['neolight:escape_keys']dconf dump /desktop/ibus/general/
[/]
engines-order=['xkb:de:nodeadkeys:deu', 'xkb:de:neo:deu', 'xkb:us::eng']
preload-engines=['xkb:de:nodeadkeys:deu']
use-system-keyboard-layout=false
version='1.5.26'

i3 on Manjaro

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.