Why I use Bone (and how I did it)
Typing is part of our everyday lives. Coding involves text, and if you’re not using MSPaintIDE, you probably use a keyboard to enter text.
And if the code gets longer, you might see your fingers strained. A few months ago, I someway heard of the Neo layout, which is designed to ease typing in both German and English, and also has more layers containing a lot of exotic symbols such as ⊥ (orthogonal to), ⊂ (subset of), ♀♂⚥ (the gender symbols), and the normal and zero width non-breaking spaces. Every one of the six layers also has three deadkeys, and there is a Compose system (on Windows and Linux), allowing you to set basically every Latin-based character.
It is, however, quite different from QWERTY (or QWERTZ, a version of QWERTY enshittified for German typewriters), so it requires a bit of learning, and my method, which I can definitely recommend: Go to a coding camp or hackathon, and write your code with that new layout.
Setting it up on different systems required a varying amount of effort, ranging from Windows (installing a keyboard driver and copying an EXE to shell:startup
) to iPad (looking up every single character to create a custom layout in a paid app).
Windows setup
For Windows setup, I just followed the official kbdneo installation instructions, downloading the Bone versions of both kbdneo and ReNeo.
Linux setup
While Neo and Bone are included as keyboard layouts, Neo variants other than Neo2 are hidden away. After a lot of research and giving up, I found that it is simply … de bone
. And so I entered that into my Hyprland config, and I saw that it was good.
iOS setup
iOS does not support Neo out of the box like Linux does, nor does it support layout drop-ins like macOS or Windows do. (If you can call copying DLLs to System32 and SysWOW64 and installing a registry patch a drop-in). The Neo manual recommended buying Keybuild (not sponsored), and using their config. But that config is only for Neo2, and only includes Layer 1 (and a bit of 2), so I wrote my own. It works really well on iPad, but the keys are a bit small on iPhone. Layer 4 is a bit cut down, but I did what I could. You can download it here: Keybuild download.
Mac setup
On Mac, the installation instructions have changed recently, and someone made a mistake doing that (edit: My PR fixing the upstream instructions has been merged. The download link now directly leads to the correct file). You need to download a Bundle file containing Neo2, AdNW and Bone. Then, copy that file to a Keyboard Layouts folder, so one of:
/Library/Keyboard Layouts
for all users~/Library/Keyboard Layouts
for the current user/Network/Library/Keyboard Layouts
for network users
Then, log out and log back in, and you should be able to select the layout in System Preferences.
You are not done! Keyboard layouts on Mac can only have 4 layers, so you also need to install Karabiner Elements, and import the Neo project’s ruleset.
Further reading
I got most of my info from the Neo manual, so, if you want to know more, you should read that.