- TypeScript 99.3%
- CSS 0.4%
- HTML 0.2%
Add to chat# Add protocol-aware QMK lighting keycodes ## Summary - Select the keycode dictionary using the connected keyboard’s VIA protocol and QMK keycode version. - Preserve unified `RGB_*` keycodes for protocol 12 and older firmware. - Use separate `UG_*` and `RM_*` keycodes for protocol 13. - Add support for the explicit Reader lighting modules: - `qmk_backlight_keycodes` - `qmk_rgblight_keycodes` - `qmk_rgb_matrix_keycodes` - `qmk_backlight_rgblight_keycodes` - Keep `qmk_lighting` as a compatibility fallback, inferring the subsystem only from standardized lighting menus. - Use the selected per-device dictionary consistently across the picker, Any input, macros, encoders, keymap rendering, and save/load. - Report missing, malformed, or unsupported protocol-13 keycode-version responses on the Errors page. - Add Develop-tab warnings for ambiguous lighting definitions and explicit module/menu mismatches. - Improve the Develop-tab error when `qmk_lighting` is combined with an explicit lighting module. - Update `@the-via/reader` to `1.14.3` and refresh the `via-keyboards` snapshot. ## Compatibility Protocol 12 and older boards continue using legacy keycode values, even when their definitions have been updated with explicit lighting modules. Protocol 13 boards must report the supported QMK keycode version (`0x00000008`) before modern keycodes are enabled. ## Verification - Tested protocol-12 legacy RGB assignment and persistence. - Tested protocol-13 RGBLight and RGB Matrix assignment and persistence. - Tested Any input assignment, autocomplete, and legacy-name rejection. - Tested protocol-12 and protocol-13 boards connected simultaneously. - Regenerated the latest keyboard definitions successfully. - TypeScript and formatting checks pass. - Production build passes. |
||
|---|---|---|
| .github/workflows | ||
| .vscode | ||
| public | ||
| scripts | ||
| src | ||
| types | ||
| .gitignore | ||
| .prettierrc | ||
| bun.lock | ||
| index.html | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| staticwebapp.config.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
VIA Web Application - Your keyboards best friend
VIA is a powerful, open-source web-based interface for configuring your QMK-powered mechanical keyboard. It allows you to customize your keymaps, create macros, and adjust RGB settings (if it has RGB) on the fly, without needing to recompile your keyboard's firmware. This makes keyboard customization easier and more accessible for everyone.
Getting VIA to support your keyboard
Are you a keyboard maker or a developer interested in adding support for your keyboard? We welcome contributions to the VIA project!
- The source code of the keyboard has to be merged in QMK Firmware Repositories Master branch.
- Your
keymaps/viakeymap has to be merged in VIA's QMK Userspace Repository Main branch. - Create a definition in JSON format for your keyboard and submit it as a pull request to VIA's Keyboards Repository Master branch.
Please follow our Specification documentation carefully to ensure your pull request is smoothly reviewed and merged.
Local development setup
Start by cloning the-via/keyboards then install dependencies with npm install and finally npm run build. You should see
the output folder dist. This should be copied or symlinked to our repo's public/definitions folder.
# Inside the-via/app
public/definitions -> ../../keyboards/dist
Useful commands
npm run dev
Runs the app in the development mode. Open http://localhost:5173 to view it in the browser.
The page will reload if you make edits. You will also see any lint errors in the console.
npm run build
Builds a static copy of your site to the build/ folder.
Your app is ready to be deployed!
npm run test
Launches the application test runner.
Run with the --watch flag (npm test -- --watch) to run in interactive watch mode.
This project is tested with BrowserStack.
Looking for an offline app?
@cebby2420 has kindly made a desktop app that does so.
You can find it at https://github.com/cebby2420/via-desktop.
NOTE: This project has no official affiliation with VIA, and we cannot provide support for it.
Facing Issues?
If you encounter any issues or bugs while using the VIA web application, please report them by opening an issue in the Issues section. This will help us to track down and resolve problems, and improve the VIA experience for everyone.
Before reporting, please make sure to check if an issue has already been reported. Thank you!
