mikkurogue/viar
A native desktop keyboard configurator for QMK keyboards with VIA/Vial support
Rust based via(l) firmware interface with a custom via protocol crate to do usb device hid comms with via supported split keyboards
- Rust100.0%
1 Review
viar is a promising Rust-native take on VIA/Vial keyboard configuration. The project has a clear niche: people with QMK/VIA/Vial split keyboards who want a desktop configurator that is lighter and more native-feeling than the existing web or Python-heavy tools. The README explains that well, and the screenshots help immediately. Features like real-time key remapping, RGB controls, EEPROM saving, JSON keymap import/export, Vial definition parsing, combos, tap dances, and dynamic entry support make this feel like more than a toy prototype.
The strongest engineering choice is the workspace split. Keeping via-protocol separate from the viar egui app is exactly the right shape for this kind of project. The protocol README is especially useful: it documents HID discovery, 32-byte report handling, lighting protocol detection, Vial LZMA layout definitions, dynamic tap dance/combo/key override structures, and error types. That makes the lower-level crate reusable for CLI tools, tests, or other keyboard utilities later. The source layout also looks clean, with UI tabs separated by concern and extra crates for qmk-rs and argos-rs.
The main thing I’d improve is confidence around compatibility. The repo is young, with 1 star, no open issues, recent commits in May 2026, and version 0.0.0-alpha for the app. That is fine, but users flashing and configuring keyboards will want a clearer “known working keyboards” table, supported OS notes, and what operations are considered safe or experimental. I’d also expand the CI workflow beyond cargo build to include cargo fmt --check, cargo clippy, and whatever unit tests can be added around protocol serialization, keycode parsing, Vial definition parsing, and lighting command construction. Hardware integration is hard to test automatically, but the pure protocol pieces look very testable.
One small documentation gap: the top-level README lists via-protocol and viar, but the workspace also contains qmk-rs and argos-rs. A short note explaining their roles would make the architecture easier to understand. Overall, viar has a real maintainer-grade foundation and solves a specific pain point for keyboard users. A bit more release packaging, compatibility documentation, and test coverage would make it much easier for early adopters to trust.
