Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

My Custom 3D Printed Keyboard

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.

Keyboard Side Profile

A fully 3D printed, hand-wired split keyboard running on KMK Firmware.
The two halves are connected using a custom hand-wired VGA cable.

🚀 Overview

  • 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.


🇮🇹 Italian Accent Support

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.


🗺️ Keymap Layouts

Below are the visual representations of the active layers defined in main.py.

🔲 Layer 0: Base (QWERTY)

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).

🇮🇹 Layer 1: Accents (Italian)

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

🔢 Layer 2: Symbols & Numpad

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

⚙️ Layer 3: Functions & Numbers

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) - -

🎮 Layer 4: Gaming Mode

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

🛠️ Setup & Installation

  1. Connect the keyboard via USB.
  2. Mount the exposed CIRCUITPY drive.
  3. Copy the contents of this repository to the root of the drive.
  4. Ensure the kmk library is present in the lib folder.

🤝 Credits

  • Keymap generated using Pog configuration tool.
  • Firmware by KMK.

About

This is my fully 3d printed keyboard

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages