Skip to content
This repository was archived by the owner on Apr 7, 2026. It is now read-only.

mornepousse/KaSe_software

Repository files navigation

KaSe Controller

Desktop & web configuration tool for the KaSe split keyboard. Built in Rust with egui — dual target native (Linux/Windows) and WASM (browser via WebSerial).

8 MB binary, zero runtime, auto-connect.

KaSe Controller — Keymap

Try it online

Web version (Chrome/Edge) — no install, connect via WebSerial.

Downloads

Platform Download
Linux x86_64 kase-controller-linux.tar.gz
macOS ARM64 (M1+) kase-controller-macos-arm64.tar.gz
Windows x86_64 kase-controller-windows.zip
Web (WASM) Live or kase-controller-web.zip

Features

Keymap

  • 2D split keyboard rendering with rotation and stagger
  • Dynamic layout — keyboard sends its physical layout JSON at connection
  • Click-to-remap any key via USB CDC
  • Mod-Tap / Layer-Tap builder with live preview
  • Hex input for advanced keycodes
  • 13 keyboard layouts — QWERTY, AZERTY, QWERTZ, Dvorak, Colemak, BEPO, ES, PT, IT, Nordic, BR, TR, UK
  • Layer list with rename, export/import per layer
  • Auto-connect via USB VID/PID (0xCAFE:0x4001)
  • Auto-reconnect on unplug/replug

Key Selector

Statistics

  • Heatmap — per-key press frequency with color gradient
  • Bigram drill-down — click a key to see most frequent next keys
  • CSV export — keystats + heatmap grid + bigrams
  • WPM — auto-refreshed every 10s in status bar

Stats

Advanced

  • Tap Dance — visual editor, 8 slots, click actions to assign
  • Combos — visual editor with keyboard popup for key picking, save + delete
  • Leader Key — sequence editor (1-4 keys), modifier checkboxes, save + delete
  • Key Override — trigger key + mods → result key + mods, save + delete
  • Bluetooth — 3 slots, pair/disconnect/switch
  • Auto Shift — toggle on/off
  • Tri-Layer — L1 + L2 held = L3

Macros

  • Visual editor with quick-add buttons (Ctrl+C/V/X/Z/S/A, Enter, delays)
  • Live preview of steps (Ctrl+C -> 100ms -> Ctrl+V)
  • Save + delete via binary protocol

Tamagotchi

  • Progress bars: hunger, happiness, energy, health
  • Feed, Play, Sleep, Medicine actions

Settings

  • Keyboard layout persisted between sessions
  • Full config backup/restore (all layers + names + TD + combos + leader + KO + macros)
  • OTA firmware update via USB CDC (native + web)
  • OTA web — download firmware direct from GitHub releases + flash
  • ESP32 flasher — flash via programming port (CH340/CP2102), no esptool needed
  • DFU mode reboot

Protocol

  • Binary protocol v2 (KS/KR frames, CRC-8/MAXIM) with auto-detection
  • Legacy ASCII fallback for older firmware
  • PING-based detection at connection

Build

Requires Rust toolchain.

# Native (Linux — needs libudev-dev)
cargo run --release

# Tests (107 tests)
cargo test

# Web (requires trunk + wasm32-unknown-unknown)
trunk serve   # dev server on localhost:8080

# Windows cross-compile (NixOS)
nix-shell shell-win.nix
cargo build --release --target x86_64-pc-windows-gnu

Project Structure

src/
  main.rs              entry point (native + WASM)
  serial/              USB CDC — native (serialport) + web (WebSerial)
  binary_protocol.rs   KS/KR frames, CRC-8, command IDs
  protocol.rs          legacy text commands
  flasher.rs           ESP32 ROM bootloader flasher (SLIP, native only)
  keycode.rs           decode 0x0000-0x6FFF to readable names
  layout.rs            JSON physical layout parser
  layout_remap.rs      13 keyboard language remaps
  parsers.rs           TD, KO, combo, leader, heatmap, macro parsers
  settings.rs          persistent settings (JSON)
  ui/
    mod.rs             KaSeApp struct + types
    connection.rs      serial connect/disconnect
    background.rs      background queries via mpsc
    helpers.rs         notifications, heatmap, key selection
    update.rs          eframe::App impl, polling, auto-reconnect
    render.rs          2D keyboard canvas + combo key picker popup
    key_selector.rs    keycode picker modal
    tab_keymap.rs      keymap editor tab
    tab_advanced.rs    TD, combos, leaders, KO, BT, tamagotchi
    tab_macros.rs      macro editor tab
    tab_stats.rs       heatmap + bigrams tab
    tab_settings.rs    layout, backup, OTA, flasher
tests/                 107 integration tests

License

See the LICENSE file.

About

KeSp_soft is the desktop configuration and management tool for the KaSe custom mechanical keyboard.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors