Overview possible key configurations aka tap-dance, super-keys…

I would like to have an overview of which sort of key configurations/ key bindings/ key triggers are possible with UHK. Not sure if I use the correct terms, but you will get my point. Please correct if my terminology is not the right one.

For this overview a table would be most helpful. Please help me to fill in the missing pieces [question marks and macro examples]. This could become another hidden blog post :wink: – or being added to the manual at one time. :smiley:

Tap-Dance Agent Macro Remarks
key press (tap) :white_check_mark: :white_check_mark:
single mod key press (hold) :white_check_mark: :white_check_mark: OS and UHK mods,
as Shift to layer
single mod key press
Move to layer
:x: ? OS and UHK mods,
stays in the desired layer till key is tapped again.
double mod key press
Move to layer
:white_check_mark: :white_check_mark: OS and UHK mods,
stays in the desired layer till key is tapped again.
One-shot layer :x: ? A combination of hold to shift, double tap to move to layer and tap to reset after 1 key stroke
multiple mod key press = combo keys :white_check_mark: :white_check_mark:² OS and UHK mods
hold very limited :white_check_mark:¹ Agent: via Secondary Role, only for standard OS mods,
can be used for home-row-mods
tap & hold :x: ?
2-tap & hold :x: ?
Sticky Shift :x: ?
Sticky mod :x: ? OS mods and UHK mods
Combo mod :x: :white_check_mark: A held combination of keys to function as a modifier, e.g. D+F = Shift

OS mods = Shift, Ctrl, Alt, GUI and AltGr = Ctrl+Alt
UHK mods = Mod, Mouse, Fn…Fn5

Macro Examples

1 – hold

resolveSecondary 500 0 1 3
tapKey d
holdKey leftShift

2 – Combo keys
3 …

Super cool would be when for each of the options an animation would be made. But the table as such would already be super helpful.

Well done! I agree that such a summary is useful.

When coming up with such a list, there are multiple angles, such as looking up the QMK docs and Kaleidoscope docs. There is no standard terminology and standard features, but these resources could help come up with an as-standard-as-possible terminology and sensible features.

Another angle is looking into the numerous smart macro examples out there, contained in the open and closed issues of the official and Karel’s (the principal author of the smart macro engine) firmware repo and the Agent repo. Collecting them would be quite an undertaking, but they’d give a complete picture of the features used.

The smart macro documentation is kind of a mess right now, containing the Agent smart macro sidebar docs, the extended macro engine documentation, and the reference manual. The above research would be useful to highlight practical use cases, and these documents should be compiled into an easily-digestible whole eventually.

Thanks for the pointers. I will see what I can do here. I likely will not go through all the documents, but a table which then can grow would be great.

I wanted to edit my original post (fix a typo), but this is not possible any longer. It mostly is good that a post can not edited “forever”, but the current time frame is very short. I very much would prefer (and think it is overal better) to allow to edit posts for at least a week, better a month or even a few months.

Back to the original topic. How/ where could a table as “work in progress” best be maintained? In the forum or new wiki?

Please try the wiki. Discourse has sane defaults in place, which I’d rather not touch.