Features

This section explains what RMK can do and how each feature works. It focuses on concepts and usage; the exact keyboard.toml fields and Rust API for each feature are documented in the Configuration section.

  • Matrix - Normal, direct-pin and bidirectional matrices, async scanning and custom matrix traits
  • Layers - Layer stack, default layer and layer keys
  • Wireless - Supported BLE chips, multiple profiles, passkey entry and wireless split
  • Configuration - Overview of keyboard.toml and the Rust API
  • Low Power - async_matrix, BLE idle sleep and external VCC control
  • Split Keyboard - Wired and wireless split keyboards
  • Dongle - USB dongle that relays a wireless keyboard to the host
  • Vial support - Real-time keymap editing with the Vial app
  • Rynk - RMK's native host protocol (experimental)
  • USB Logging - Logs over a USB serial port without a debug probe
  • Storage - Persistent flash storage for keymaps and bonding data
  • Use Rust - Switch a generated project from keyboard.toml to the Rust API
  • Processor - Components that consume events, such as displays and LEDs
  • Event - The event channels that connect input devices, processors and the keyboard core
  • Input Device - Encoders, joysticks, pointing devices and other input hardware
  • Display - OLED and other small displays
  • Stenography - Plover stenography over USB HID
  • Binary size - Tricks to shrink the firmware
  • Watchdog - Hardware watchdog for recovering from hangs