The short version: By changing the USB product ID in a JSON file for a similar keyboard, to that, for example, of a Keychron V6 Ultra 8K ‘ISO‘, it is possible to change keymappings, record macros, and execute macros from Via for …

The ZMK-based Keychron keyboards, for example, V6 Ultra 8K, work with Via! Read more »

The short version: … at scale: Multiple types (QMK, ZMK, ), different forks, different branches, different versions Convenient development … And yes, it takes up more disk space and initial bandwidth cost, but XXXX. Original vs. own custom changes Original …

Fully automated setup of multiple QMK projects from scratch, incl. forks and Vial Read more »

The short version: A few lines of Python code using the Matplotlib library will convert between HSV and RGB colour values. An online tool is not required. For example, the open source keyboard firmware QMK tends to use HSV values …

Converting to and from RGB and HSV colour values Read more »

Today, I discovered that mouse actions in Via macros are actually supported! But a bug in Via’s GUI makes it impossible to enter them… So how is it possible? By using the Via clone (but only if using a Keychron …

Mouse actions are actually supported in Via macros, just not in Via’s GUI Read more »

The short version: It is possible to change the number of Via and Vial macros and change the space for them to be essentially unlimited. Unfortunately, there are many different ways of achieving it, depending on the particular keyboard, the …

Overcoming limitations for macros on Keychron keyboards Read more »

The idea is to capture the Via macro execution in function dynamic_keymap_macro_send() (in file quantum/dynamic_keymap.c) and instead feed the information into an existing QMK macro engine that has cancelling macros and repeating macros as features. Introduction It is relatively straightforward …

The basis for cancelling Via macros in progress and for making Via macros repeat Read more »

The short version: Use QMK‘s send_string_with_delay() with binary content (as it is not a real string) encoded in a particular manner to piecemeal execute a macro, housekeeping_task_user() to run a state machine for executing the macro (which can check for …

The basis for a way to cancel QMK macros in progress Read more »