It has been a year since I started using smaller ortho keyboards and QMK (first on an Iris and then on a chimera) and my layouts have remained steady for several months now, so I thought I’d document it here to help others attempting a similar change.I spend about 10 hours a day juggling spreadsheets, browser tabs, python, sql code and qlikview in addition to a bunch of other apps, so I definitely classify as a heavy multi-tasker.Many people seem to be under the impression that intensive users of keyboards (like programmers) cannot use a small board effectively, and I want to argue against that. I have been doing most of what I described above for 12+ years, and happily used a full size keyboard for 10 of those years. I believed the loss of home position while using function keys or the numpad for instance was just part of the job, and dealt with it.The massive advantage to using a small keyboard, where every key is 1u away (or less) is that one never looses the home position unless you need the mouse. And when the keyboard is 10 keys across even the mouse lies within nudging distance of home position.So one never needs to look off-screen. I now feel in the ‘flow’ while working. The human-machine interface disappears and I feel like I disappear into my work. (Using switcheroo, a text based alt-tab replacement contributes in a big way too).I think a smaller keyboard is worth considering for any heavy user. It will take some time to adjust, but it is heavy users who stand to gain the most over their lifetimes.The layers are optimised for heave usage of mods, arrow and document navigation keys.My layers
- My base layer is on top. I use the altthern layout instead of qwerty, but the layers I suggest could be used on qwerty too. However, it is important that the enter and backspace are available on the base layer. The home positions are in grey.
- I address the reasons why I configured the layers this way here. This was nearly a year ago. So there are some small changes since then.
- [xxx] is a one shot layer switch to ‘xxx’ layer. Notice that the thumb keys function as a layer and mod cluster. Out of 6 thumb keys, 4 are layer keys, 1 is a ctrl key (most common mod) and the remaining thumb key is space – which, in addition to being about 20% of all text key strokes, is a common key used as part of combos while navigating spreadsheets and in most IDEs. My 4 basic layers are:
- [nav] for mods, arrows and document navigation.
- [num] for a numpad on the right half and arrows on the left half (useful while using the mouse).
- [fnc] for a function key cluster on the right half and a mirrored base layer on the left (useful for quickly typing short strings with one hand on the mouse).
- [sym] for accessing most symbols. I know most common symbols can be accessed using shift+number, but I think this is far more elegant and accessible.
- All mod keys are one-shot mods. Further, I use a slightly modified version of qmk where one shot mods are chainable allowing me to go into the nav layer and press whatever combo of mods I want (eg: ctrl+win+shift) and then go into any other layer, and hit another key to ‘send’ the combo.
- Common mod combos are available on [sym] too. After several months of trying I didn’t get the complete hang of getting into the nav layer and sending multiple mods reliably when I am trying to be really quick. I believe tinkering with qmk configurations like ‘tapping term’ etc will change that, but meanwhile the right thumb cluster functions as kind of a mod cluster with ctrl, ctrl+shift, ctrl+alt on it.
- F13 activates switcheroo. It’s a way to switch apps through text. It’s open source. I can’t recommend it enough. I don’t see why windows doesn’t have something like this out of the box. There are similar apps for Mac OS and Linux.
- The advanced layers are activated through pressing thumb keys one after another. I haven’t described these layers in the diagram, but they are:
- [sys] has OS functions like numlock, print screen, volume, media controls and qmk meta functions like reset. It has emojis on the right.
- [mouse] replicates mouse keys all mouse keys on the right side. This includes moving the pointer in 4 directions, scrolling in 4 directions, 5 mouse buttons and acceleration controls. While you can replicate all mouse movements with this configuration, I still use the mouse unless I need to just move the cursor a few pixels. This layer also has function keys F14 through F24 on the left side. I can assign app specific functions to these through AutoHotKey. Notice that one only needs the left hand to send these keys, so with the right hand on the mouse, this is a very powerful feature.
- [l.num] has a numpad on the left side, so I may send numbers using only the left hand if my right hand is on the mouse. The key codes sent by the numpads on keyboards are different than the key codes sent by the number row on top of a keyboard. In most contexts the OS interprets them as the same, but in some contexts they may serve different functions (alt codes for example). On the right side, this layer has a numpad that sends these ‘numpad’ key codes.
- <xxx> is a toggle into a layer. I only use it for getting into my base layer, just in case I am stuck on another.
Someday, I’d like to build a keyboard (or get one built) with a 16mm horizontal pitch so that finger travel may decrease even further.
Another idea to achieve the same purpose is to have the bottom row of keys at a vertical angle with the keys facing forward (towards the monitor), so the fingers can just curl and hit the keys instead of moving 1u down.
Since using the altthern layout, which puts common alphabets on the home and top row, I find myself homing on the top of the home row, instead of the bottom (where the homing bumps usually are). This means that the bottom row gets a little further away.