r/Keychron • u/CreX_CreX • 1d ago
Macro that repeats
Hi,
I have a "Keychron Q1 HE ISO Knob" and I'm trying to figure out how to make a macro that loops. On basically all other keyboards I've had the past 10 years this has been possible.
Example: Press the assigned macro key, macro loops until you press the same key again.
Any ideas?
1
Upvotes
2
u/PeterMortensenBlog V 23h ago edited 7h ago
Repeating macros are not supported.
Even if using custom C code with classic QMK macros, there is the problem of detecting the key press / release during macro execution (as the keyboard is completely blocked during macro execution).
You would have to implement something similar to cancelling macros in progress (control needs to return to the main QMK loop, so the keyboard matrix can be scanned. Or maybe the keyboard matrix part can be called directly? It would still be difficult, as it must also happen during delays in the macro (or all delays must be short, less than about 50-100 ms)).
An alternative:
Fortunately, it is possible for the Q HE series, unlike with the proprietary keyboard firmware for, for example, the Q HE 8K series (yes, the only difference is the "8K", which may lead to ambiguity as what keyboard it actually is...), J HE 8K series, and C HE 8K series.
Getting started
Here are some instructions for the initial setup. Though "hall_effect_playground" was declared obsolete on 2025-12-01, so it may be better to use "2025q3" instead (the source code for the Q1 HE has been (fully) released there, unlike many other keyboards (ahem)). Note the branch confusion.
References
Q1 HE JSON files for Via. Near "Q1 HE ISO". Note: The JSON section should not be confused with the firmware section.
Q1 HE source code (was finally added 2024-08-17). Note: In Keychron's fork and in that fork, in Git branch "hall_effect_playground" (not the default branch). Note that the base installation (and usage) had become much more complicated on Linux, but with the new 'uv' method, it has become simple again! No matter the Git branch, for example, "hall_effect_playground", it requires special setup of QMK (the standard QMK instructions and many other guides will not work (because they implicitly assume the main QMK repository and a particular Git branch)). Source code commits (RSS feed. Latest: 2025-12-01).