Skip to content

Repository files navigation

⌨️ Corne Keyboard — ZMK Config

Build ZMK firmware

Personal ZMK firmware configuration for a Corne split keyboard (42 keys) with nice!nano v2 controller and nice!view e-paper display.

Layout

The SVG diagram below is auto-generated by keymap-drawer on every push.

Keymap

Layers

Layer Activation Contents
Default (0) QWERTY, LALT on right thumb
Lower (1) Left thumb (LWR) Numbers, navigation (arrows/Home/End/PgUp/PgDn), word-jump modifiers, Undo/Cut/Copy/Paste
Raise (2) Right thumb (RSE) Symbols and advanced punctuation
Adjust (3) LWR + RSE (tri-layer) F1–F12, media/volume, macOS window management (Mission Control, Exposé, Desktop switch)
Bluetooth (4) Combo A+S BT profile selection (×3), BT clear, USB/BLE toggle, reset, bootloader

Combos

Keys Output Layer
D + F Tab Default
J + K Esc Default
U + I Backspace Default
G + H Caps Word Default
L + ; Enter Default
A + S Bluetooth layer Default

All combos use require-prior-idle-ms (150–200 ms) to prevent accidental activation during fast typing.

Navigation Modifiers (Lower Layer)

The left home row on the Lower layer provides modifiers that combine with the right-hand arrow keys, enabling cross-OS text editing:

Key Modifier macOS Linux
A pos Ctrl+Alt (WORD) Jump word ✅ Jump word ✅
S pos Shift (SHFT) Select character ✅ Select character ✅
D pos Ctrl+Alt+Shift (W+SHF) Select word ✅ Select word ✅
Ctrl pos GUI Window snap (Rectangle) Hyprland binds

The word_mod macro presses Ctrl+Alt simultaneously — macOS honors Option (word jump) while Linux honors Ctrl (word jump). The extra modifier is ignored on each OS.

Window Management (Adjust Layer)

Key Shortcut macOS Hyprland
Ctrl pos Ctrl+↑ Mission Control Configurable
A pos Ctrl+↓ App Exposé Configurable
S pos Ctrl+← Previous desktop Configurable
D pos Ctrl+→ Next desktop Configurable
F pos `Cmd+`` Switch windows (same app) Configurable
G pos Cmd+Tab App Switcher Configurable

Bluetooth Layer

Activated by holding A+S simultaneously. Protected with require-prior-idle-ms = 200.

Key Action
D BT Profile 0
F BT Profile 1
G BT Profile 2
Z BT Clear (unpair current profile)
X Toggle USB ↔ BLE output
C System reset
V Enter bootloader

Caps Word

Press G + H to activate Caps Word mode: all letters are capitalized until you type a space or punctuation. Great for typing constants like HTTP_SERVER, MAX_RETRIES, etc.

Firmware Settings

Setting Value Description
Idle Timeout 30 s Enters idle state to ease BT reconnection
Deep Sleep 15 min Battery saving after prolonged inactivity
BT TX Power +8 dBm Extended Bluetooth range
BLE Experimental Enabled More stable BT connection
BT Max Connections 4 3 profiles + 1 split link
BT Name "Corne" Name shown during pairing

Hardware

  • MCU: nice!nano v2 (nRF52840)
  • Display: nice!view (e-paper)
  • Layout: Corne (3×6 + 3 thumb keys per side)

Build & Firmware

Firmware is automatically compiled via GitHub Actions on every push.

  1. Go to the Actions tab
  2. Click the latest run with ✅
  3. Download the firmware artifact (contains .uf2 files for left and right halves)
  4. Connect each half via USB and copy the matching .uf2 to the NICENANO drive

License

MIT

About

⌨️ ZMK firmware config for Corne split keyboard — nice!nano v2 + nice!view display

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors