KeSp split keyboard configurator — Slint UI port
Find a file
Mae PUGIN d1d10b7d73 feat: Binary protocol v2, config import/export, Tools tab, new layout format
- Migrate all serial commands from ASCII text to binary KS/KR frame protocol
  (SETLAYER, TD_LIST, COMBO_LIST, LEADER_LIST, KO_LIST, etc.)
- Add config import/export as JSON (keymaps, tap dances, combos, KO, leaders, macros)
- Merge Flash + Layout Preview into single Tools tab
- Replace WPF tree layout JSON format with flat groups+keys format:
  - Top-level "keys" for absolute positioning (thumbs, isolated keys)
  - "groups" with x/y/r transform, keys inside use local coordinates
  - Coordinates in units (1u = 50px), w/h default 1u, r default 0
- Layout auto-refresh (5s timer) for live preview while editing externally
- Pretty-print JSON in layout preview and export

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 21:30:04 +02:00
.github/workflows fix: Remove macOS Intel target, fix CI 2026-04-07 16:39:52 +02:00
original-src feat: Complete KeSp Controller — Slint UI port 2026-04-06 20:40:34 +02:00
src feat: Binary protocol v2, config import/export, Tools tab, new layout format 2026-04-07 21:30:04 +02:00
ui feat: Binary protocol v2, config import/export, Tools tab, new layout format 2026-04-07 21:30:04 +02:00
.gitignore docs: Add README, LICENSE (GPL-3.0), prepare for public release 2026-04-07 16:50:39 +02:00
build.rs feat: Complete KeSp Controller — Slint UI port 2026-04-06 20:40:34 +02:00
Cargo.lock release: v1.0.0 — KeSp Controller multi-platform 2026-04-07 16:23:12 +02:00
Cargo.toml docs: Add README, LICENSE (GPL-3.0), prepare for public release 2026-04-07 16:50:39 +02:00
default.json feat: Binary protocol v2, config import/export, Tools tab, new layout format 2026-04-07 21:30:04 +02:00
LICENSE docs: Add README, LICENSE (GPL-3.0), prepare for public release 2026-04-07 16:50:39 +02:00
README.md docs: Add README, LICENSE (GPL-3.0), prepare for public release 2026-04-07 16:50:39 +02:00

KeSp Controller

Cross-platform configurator for the KeSp split ergonomic keyboard.

Built with Rust and Slint UI framework.

License: GPL-3.0

Features

  • Keymap editor with visual keyboard layout (loaded from firmware)
  • Key selector with categorized grid, Mod-Tap/Layer-Tap builders, hex input
  • Heatmap overlay showing key press frequency (blue to red gradient)
  • Layer management with switch, rename, and active indicator
  • Tap Dance editing (4 actions per slot)
  • Combos creation with visual key picker
  • Key Overrides with modifier checkboxes (Ctrl/Shift/Alt)
  • Leader Keys with sequence builder
  • Macros with visual step builder (key presses + delays)
  • Statistics (hand balance, finger load, row usage, top keys, bigrams)
  • OTA firmware update via USB (no programming cable needed)
  • ESP32 flasher (esptool-like, via programming port)
  • Settings with keyboard layout selector (QWERTY, AZERTY, DVORAK, etc.)
  • Dracula theme throughout

Download

Pre-built binaries for Linux, Windows, and macOS are available on the Releases page.

Build from source

Requirements

  • Rust toolchain (1.75+)
  • Linux: libudev-dev libfontconfig1-dev

Build

cargo build --release

Binary will be at target/release/KeSp_controller.

Usage

  1. Plug in your KeSp keyboard via USB
  2. Launch KeSp Controller
  3. The app auto-connects to the keyboard
  4. Use the tabs to configure: Keymap, Advanced, Macros, Stats, Settings, Flash

Keyboard compatibility

Designed for the KeSp/KaSe split keyboard with:

  • USB CDC serial (VID: 0xCAFE, PID: 0x4001)
  • Binary protocol v2
  • ESP32-S3 MCU

License

GPL-3.0 - See LICENSE

Made with Slint