keychron_qmk_firmware/keyboards/lily58/keymaps/bcat
..
config.h
keymap.c
readme.md
rules.mk

bcat's Lily58 layout

This split ergo layout is standard QWERTY on the default layer, with symbols on the lower layer, numbers/navigation on the raise layer, and media keys centered around the ESDF cluster in the adjust (raise + lower) layer. A few general principles went into this layout:

  • The number row is optional, as are the outermost bottom row keys and the "extra" keys on the innnermost columns below the controllers. This allows me to switch between this keyboard and a 40% like the Crkbd without breaking muscle memory.

  • Space and Enter are on the big thumb keys so they're easy to press.

  • There are two shift keys because Right Shift is all that important, but just because I don't have any better ideas for what to put there.

  • Arrow keys are on VIM-style HJKL keys.

  • Home/End and Page Up/Page Down are equivalent to the arrow keys, but translated down one row.

  • Navigation is usable with just the right hand, to enable left-handed mousing at the same time. Additionally, Web page scrolling (Space, Shift+Space) is possible with just the left hand, for writing at the same time as scrolling.

  • Escape is easy to reach because Vim is life.

  • Since most of the modifiers are on the left half, keys frequently pressed together with mods (e.g., numbers, function keys, etc.) are on the Raise layer activated by the right thumb.

  • Every key on a TKL has a binding.

  • Backspace is bound in the same place on every layer to avoid having to let go of layer-shift keys to fix a mistake.

  • Likewise, the comma and period keys are not rebound on the raise layer to allow typing numbers with thousand separators and decimal points without releasing the layer key.

  • Brackets and braces are on or near the home row for quick access when coding. They're positioned below the parens on the Raise layer for easy recall.

  • For consistency, mods aren't rebound on layers (except for the Tab key).

Default layer

Default layer layout

(KLE)

Lower layer

Lower layer layout

(KLE)

Raise layer

Raise layer layout

(KLE)

Adjust layer

Adjust layer layout

(KLE)