This is a QMK layout designed with small split and unibody split keyboards in mind, based on Colemak-DH and a core set of layers for symbols, numbers and navigation keys situated in a 3x3 grid. The layout is designed to work with as little as 18 keys with 2 thumb keys and can be expanded from there.
This git repository should be copied or cloned into the users/flexkey/
folder
in the QMK firmware, or it can be added as a submodule. The install_keymaps.sh
script will install exemplar keymaps into several supported keyboards, which can
then be compiled.
The keymaps comprise a rules.mk
file and a small keymap.c
file that is
responsible for adding layer mappings. These can be copied into other keyboard
keymap/
subfolders and the exact configuration of the keymap can be adjusted
to suit by editing variables in the rules.mk
file.
The base layer is made up of the middle three columns of a Colemak-DH layout. Most of the keys also operate as modifiers or layer keys if held down. In addition, the QMK Caps Word feature can be toggled by tapping the two shift modifier keys at the same time.
There are a number of ways to access the rest of the Colemak-DH keys. The first
way is to use the middle S
and E
keys to access the extended layers.
The S
key makes the outer columns on the right side of the keyboard available
and the E
key makes the outer columns on the left side of the keyboard
available.
The modifier keys are organised vertically on the outside columns so that they can be pressed along with the extended layer keys. The extended layers also define the corresponding modifier keys in the same places, so you can be relaxed about whether you hold down modifiers before or after the layer key.
The second way is to use combos.
Combos make the outer keys available by pressing two adjacent keys at the same
time. For example, K
is accessed by pressing the H
and ,
keys together,
and /
is accessed by pressing the ,
and .
keys together.
The final way is to use a larger keyboard and expand the keymap to use them by
setting variables in the rules.mk
file.
The following variables are available:
- FK_TOP_OUTER_KEY = yes enables the
Q
andBackspace
keys - FK_MIDDLE_OUTER_KEY = yes enables the
A
andO
keys - FK_BOTTOM_OUTER_KEY = yes enables the
Z
and/
keys - FK_INNER_KEYS = top enables the
B
,J
,G
andM
keys - FK_INNER_KEYS = bottom enables the
G
,M
,V
andK
keys - FK_INNER_KEYS = all enables all of the
B
,J
,G
,M
,V
andK
keys
As physical keys become available the combos for those keys are disabled unless the following variable is defined:
- FK_COMBOS_ON = yes enables all combos regardless of which physical keys are defined
Finally the number of thumb keys per side can be increased:
- FK_TWO_THUMBKEYS = yes enables two thumb keys per side of the keyboard,
adding
Shift
andBackspace
thumb keys alongsideSpace
andEnter
.
Both symbol layers put the symbols associated with the shifted number keys on the top row in their correct finger positions, as much as possible.
The left symbol layer gathers the pairs of symbols that would normally appear on the right side of a standard UK ISO keyboard.
The right symbol layer gathers the brackets, braces and parentheses. The backslash and pipe symbols appear on the left, echoing where that key appears on a UK ISO keyboard.
The navigation layer gathers navigation related keys together. The right side of
the layer has the arrow keys and related keys, along with some useful navigation
macros. The left side has the three non-alphanumeric keys found on the left of a
standard keyboard - Esc
, Tab
and Caps Lock
- as well as modified Tab
keys for convenience.
The Left
and Right
arrow keys can be held down to activate Shift
and
Control
modifiers.
The number layer arranges the number keys in keypad format on the left side (I'm
left-handed). Some useful keys are replicated on the right side of the layers:
Del
and Backspace
from the left extended layer, ,
and .
from the base
layer, and /
for typing dates.
The controls and function layers gather together media keys and function keys respectively.
The function layer has keys for the left and right mouse buttons and the controls layer has keys for scroll up and scroll down, which can be used with a trackball operated by your thumb.
Finally the shortcut layer provides a number of macros that work with applications on Windows and ChromeOS.
The Windows app keys rely on an AutoHotkey script (included in this repo) whereas, on ChromeOS applications are launched based on their postion on the shelf - you can think of the six app keys as "launch shelf app 1" and so on.
An Emoji
key will launch the emoji picker window on both operating systems.
By default the keyboard will start in Windows mode, but the mode can be changed
at any time with the Win
and CROS
keys.