Skip to content

hendstephen/zmk-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,053 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Corne ZMK Config

Build ZMK firmware Draw ZMK keymaps

This ZMK config is for split ergo 3x6 boards like the Corne. The repo also builds for the Lily58, ignoring the extra keys.

Features

  • Night base layer
  • Homerow mods using urob's timeless homerow mod config
  • Symbol layer based on getreuer's symbol layer
  • Commonly used symbols in combos on the base layer (see section on combos)
  • Sticky shift on pinkies
  • Numpad on the nav layer for vim line motions (e.g. 15↑ to jump up 15 lines)
    • This is needed mainly because I use an alt layout and thus lose the typical hjkl home row navigation.
    • Additionally, having a nav block on the home row is very convenient even in non-vim scenarios.
  • Num-word
  • More intuitive mod morphs
  • Convenience macros
    • => or "fat arrow"
    • Cut, Copy, Paste, Select all - All are left-hand only for easy editing while using the mouse.
    • // - long press on / key to output double slash for starting a comment
  • Sticky Alt on base layer re: Issue #759
    • I do most of my work on a remote desktop, and it seems the client doesn't respect the alt modifier on a non-base layer (or mod-tap) until after the full tap-hold delay. I got tired of waiting, so I put sticky alt on the base layer as well as a tab combo for a quick window switch without waiting for the full timeout.

Keymap

Keymap Representation

Night Layout

I'm in the process of switching to Valorance's night layout, with some changes.
ASCII version of my variant (besides ;., placements, which I am experimenting with):

x f l d v  p w o u ,
n s h t m  y c a e i
b z j k q  ' g ; / .
        r

BX swap

I'm not a fan of top row pinkies (QWERTY q position) on my corne, because it forces me to move my whole hand up. I swap b with x to put it in the bottom row. With some other similar layouts that use a bnx column and have l on the left hand (gallium, graphite), this would cause a bad scissor because of the l position on the top ring, but with night's l being on the top middle instead of ring it feels fine.

Left Hand

I use the nightingale left hand, which notably:

  • Puts d on top instead of k
  • Swaps vqz in order to put v on the top corner to minimize movement from d_v and l_v skipgrams

Symbol Combos

I much prefer combos over layers. There is less interruption to my typing flow that comes from swapping to a layer. This is particularly true when inputting a single symbol (e.g. = vs =>), in which case holding a layer is very awkward. This can be worked around by using a one-shot layer key for the symbol layer, but then you have to account for both a one-shot symbol (=) and a two-shot (or even n-shot) symbol (=>). This is less than ideal, so for this reason I have all symbols on combos on the base layer.

Additionally, my most common symbols are duplicated on both hands to further improve typing flow when inputting symbols. For example, take this text:

x >= 0;

Without = on both hands, this could result in the > and = combos being on the same hand. Putting = on both sides allows us to preserve alternation. Similarly, ; is used all the time (at least in C-type languages), but often comes after either ) or a letter. So, for the following lines, without ; on both sides, at least one of these would result in an awkward same-hand combo sequence.

CallFunc();         // Could be avoided by just having ) and ; combos on opposite hands
var x = myOtherVar; // No guarantee that the last letter will be on opposite hand from ;

Mod Morphs

Tap Shift + Tap
. :
, ;
/ ?
Sticky Shift Caps Word

About

ZMK config for the corne keyboard

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages