This repository contains the configuration and firmware for my main daily driver keyboard. It is a fully custom project, entirely 3D printed, and powered by the KMK Firmware.
A fully 3D printed, hand-wired split keyboard running on KMK Firmware.
The two halves are connected using a custom hand-wired VGA cable.
- Type: Split Ortholinear (42 Keys)
- Case & Keycaps: Fully 3D Printed
- Firmware: KMK (Python-based)
- Language Support: Optimized for Italian typing with custom Macro handling.
This keyboard is designed to be highly functional for both coding and daily typing, condensing a full-sized layout into a compact form factor through the use of layers and combos.
One of the main challenges with compact ANSI-style keyboards is typing Italian accented characters (à, è, ì, ò, ù) efficiently.
I implemented a custom Macro system using UnicodeModeIBus (compatible with Linux).
- Tap: Types the lowercase accented letter (e.g.,
à). - Shift + Tap: Types the uppercase accented letter (e.g.,
À).
This logic handles the Shift key state programmatically to ensure the correct Unicode sequence is sent without conflict.
Below are the visual representations of the active layers defined in main.py.
Standard typing layer with "Hold-Tap" mod-taps on thumbs and "Layer-Tap" on specific keys.
| Left Hand | Right Hand | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ESC | Q | W | E | R | T | Y | U | I | O | P | BKSP | |
| LSFT | A | S | D | F | G | H | J | K | L | - | ENT | |
| LCTRL | TAB | Z | X | C | V (L3) |
B (L3) |
N | M | , | . | ' (L1) |
|
| LALT | ! (L2) |
Win/Spc |
Spc |
; (L2) |
DEL |
- V / B: Hold to activate Layer 3 (Functions).
- ' (Quote): Hold to activate Layer 1 (Accents).
- ! / ;: Hold to activate Layer 2 (Symbols/Numpad).
Activated by holding the Quote key. Provides access to Italian vowels.
| Left Hand | Right Hand | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ESC | Q | W | é | è | T | Y | ù | ì | ò | P | BKSP | |
| LSFT | à | S | D | F | G | H | J | K | L | + | ENT | |
| LCTRL | TAB | Z | X | C | V | B | N | M | , | ` | ||
| LALT | ! | SPC | SPC | ; | DEL |
Activated by holding the thumb keys (Exclaim or Semicolon). Splits the board into Symbols (Left) and Numpad (Right).
| Left Hand | Right Hand | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| % | | | ^ | & | { | } | 7 | 8 | 9 | / | * | BKSP | |
| CW | @ | $ | # | [ | ] | 4 | 5 | 6 | + | UP | = | |
| RSFT | RCTRL | . | ? | ( | ) | 1 | 2 | 3 | LEFT | DOWN | RIGHT | |
| RALT | (L2) | \ | 0 | (L2) | DEL |
Activated by holding V or B.
| Left Hand | Right Hand | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | - | |
| - | - | Tog(L4) | PrtSc | NumLk | (L3) | (L3) | NumLk | PrtSc | Tog(L4) | - | - | |
| - | - | Tog(L4) | Tog(L4) | - | - |
A dedicated layer for gaming where Hold-Tap features are disabled to reduce latency and prevent accidental layer switching. WASD is prioritized.
| Left Hand | Right Hand | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ESC | Q | W | E | R | T | Tog(L4) | U | - | - | BKSP | - | |
| LSFT | A | S | D | F | G | - | - | - | - | - | ENT | |
| LCTRL | TAB | - | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
| RALT | Z | SPC | - | - | DEL |
- Connect the keyboard via USB.
- Mount the exposed
CIRCUITPYdrive. - Copy the contents of this repository to the root of the drive.
- Ensure the
kmklibrary is present in thelibfolder.
- Keymap generated using Pog configuration tool.
- Firmware by KMK.