KMK is updated often and sometimes a lot. Obtaining a fresh copy can be done by forking the main
branch of this repository, or downloading a snapshot of it.
Pre-compiled version of KMK can be acquired by navigating to Actions > Build, there it can be found under artifacts for the latest build.
Before you look further, you probably want to start with our getting started guide.
- Getting Started
- Bluetooth HID: Connect keyboard to PC or mobile device using BLE
- Configuring KMK
- Porting to KMK: Creating a
kb.py
file for a board - Debugging
- Keycodes: List of all available keycodes
- Officially supported microcontrollers
- Support
- Contributing
- Flashing instructions
- Handwiring: Resources helpful when handwiring a keyboard circuit
- Keys: Technical explanation of key handling
- Scanners: Setting up non-default key reading
- Combos: Adds chords and sequences
- Layers: Adds layer support (Fn key) to allow many more keys to be put on your keyboard
- HoldTap: Adds support for augmented modifier keys to act as one key when tapped, and modifier when held.
- Macros: Adds macros.
- Mouse keys: Adds mouse keycodes
- Sticky keys: Adds support for sticky keys, alias one shot keys.
- Power: Power saving features. This is mostly useful when on battery power.
- SerialACE: [DANGER - see module README] Arbitrary Code Execution over the data serial.
- Split: Keyboards split in two. Seems ergonomic!
- TapDance: Different key actions depending on how often it is pressed.
- Steno: Communicate with stenography software over serial.
- ADNS9800: Controlling ADNS9800 optical sensor
- Encoder: Handling rotary encoders
- Pimoroni trackball: Handling a small I2C trackball made by Pimoroni
- International: Adds international keycodes
- LED: Adds backlight support. This is for monocolor backlight, not RGB
- LockStatus: Exposes host-side locks like caps or num lock.
- MediaKeys: Adds support for media keys such as volume
- RGB: RGB lighting for underglow. Will work on most matrix RGB as will be treated the same as underglow.
- Status LED: Indicates which layer you are on with an array of single leds.