| 🪸 Urchin | ✖️ Crosses | 🪶 Corne |
|---|---|---|
![]() |
![]() |
![]() |
| 34 keys (3x5+2) | 36 keys (3x5+3) | 42 keys (3x6+3) |
My personal ZMK firmware configuration shared across some different keyboards. Features a unified logical layout with board-specific physical mappings.
This project uses a modular architecture to share keymap logic across different keyboard layouts:
config/base.dtsi: Core keymap logic (layers, combos, behaviors) for 34 logical keys- Board-specific keymaps: Map the 34 logical keys to each keyboard's physical layout
urchin.keymap: 34 keys (direct mapping)corne.keymap: 42 keys (34 logical + 8 edge keys)crosses.keymap: 36 keys (34 logical + 2 thumb keys)
- Home Row Mods: Inspired by urob's timeless layout
- Smart Combos: Essential actions (Esc, Enter, Cut/Copy/Paste) without extra keys
- Auto-Sentence: Automatic capitalization and period insertion
- Mouse Layer: Pointing device support with tap-toggle/hold-momentary behavior (board-dependent)
- Shared Configuration: DRY approach with
default.conffor common settings
| 🪸 Urchin | ✖️ Crosses | 🪶 Corne |
|---|---|---|
This project uses mise for tool management and just for commands.
- Install
mise: Follow instructions at mise.jdx.dev - Initialize environment:
mise exec -- just init
All commands support multiple boards. Run with mise exec -- just <command> or just <command> if mise is activated.
just build [board] [side] # board: urchin (default), corne, crosses
# side: left, right, all (default)Examples:
just build→ Build Urchin (both sides)just build corne left→ Build Corne left sidejust build crosses all→ Build Crosses (both sides)
just flash [board] [side] # board: urchin, corne, crosses
# side: left, rightExamples:
just flash corne right→ Flash Corne right side
just draw [board] # board: urchin, corne, crossesExamples:
just draw→ Generatedraw/urchin.svgjust draw corne→ Generatedraw/corne.svgjust draw all→ Generate all boards
| Command | Description |
|---|---|
just clean |
Clean build artifacts |
just clean-all |
Clean everything (workspace + venv) |
just update |
Update ZMK and dependencies |
just check |
Verify environment setup |
- urob/zmk-config — Home-row mods and ZMK helpers
- caksoylar/keymap-drawer — Keymap visualization
- duckyb/urchin — Urchin keyboard design
- Good-Great-Grand-Wonderful/crosses — Crosses keyboard design
- foostan/crkbd — Corne keyboard design


