Why is Keyboard Maestro’s conflict palette rarely mentioned as a leader-key alternative to LeaderKey.app or Karabiner Elements—are there performance or feature trade-offs?

Thisto me is a Keyboard Maestro question, but it may be a better in the Outback Lounge area, so please feel free to move it if this is inappropriate here :slight_smile:

I'm genuinely wondering why many new posts and videos showing use cases such as the leader key app (GitHub - mikker/LeaderKey.app: The *faster than your launcher* launcher) or using karabiner elements layers (https://www.youtube.com/watch?v=mQDMeIXFi4k) never seem to mention that you could do the same with keyboard maestro and conflict pallets?

I've been using Keyboard Maestro conflict palettes for close to 8 years now to do the same (ie act as a leader key, ie hyperkey + M` opens my Markdown menu:

hyperkey L would open a linking menu, etc etc

How is that different from other services? I'm just curious why people are never mentioning Keyboard Maestro for that? is performance using karabiner elements much better? is the conflict pallet limiting in any way?

would love to hear the communities thoughts on this!

thx

Z

3 Likes

No offense to anyone, but this youTube video ... honestly, it's all much ado about nothing.

Do you want “hyperkey” with just one (1) modifier? That works with macos. Switch CapsLock to right control. KM and other apps allow you to trigger something different with the right modifier + letter than with the left + same letter.

Of course this also works with the left and right cmd key, without changing the keyboard layout.

If I want a "different layer" with a shortcut (modifier + letter) then I don't need Karabiner or LeaderKey. Everything you can do with two keys is really nothing magical.

You get a touch of magic when you can do two things, or three, or four with just one key. That works, but now things get complicated ... :slightly_smiling_face:

Could you please elaborate? I am always interested in people’s general strategies for maxing out their keyboard‘s possibilities.

It has certainly been discussed in this forum, for example at various points in the topic Leader key implementation in KM. Beyond that, well, people are in general not always aware of what KM can do, and when they do have some awareness, a ready-made, polished solution in one little utility may still have more appeal than making and tweaking macros.

Hi, @zeltak. From an execution standpoint, LeaderKey is appealing to me. Specifically I like the idea of pressing a sequence of two or three keys to launch a task. This hearkens back to the days when I gleefully used the vi editor.

But as you point out, we have Keyboard Maestro! Specifically we have Keyboard Maestro palettes and with some systematic configuration of these palettes, we can similarly launch tasks with a short sequence of key presses.

Several weeks ago I shared my LeaderKey-like approach (at the time) in two posts in another thread (post 1 and post 2).

Since that time, I have significantly refined the way I use palettes. I started my new design with four primary objectives:

  1. create a system that makes it easy to expose nearly all of the macros that I use routinely (exceptions are the macros that I use most frequently; those macros are configured and triggered by hot keys)

  2. use the mac keyboard (versus mouse or trackpad) whenever possible. (Years ago, I suffered from ergonomic pain due to mouse overuse; since that time, I've been on a mission to maximize use of the keyboard.)

  3. use short sequences of key presses (thereby saving true hot keys, e.g., ⌘+e, for the macros most frequently used)

  4. leverage the strengths of Keyboard Maestro and use other applications only when a requirement cannot be implemented with Keyboard Maestro. (Also, when another application is used, apply it in such a way that configuration changes within that application are infrequent.)

Sometime in the future when I get the spare time, I will create a tutorial and share the details of my launch system. For now, I'll share one refinement that reduces every task launch by one key press.

Unless I've missed something (seems like I often do :sweat_smile:), I don't think Keyboard Maestro has a native method to distinguish between a left and right modifier. However, with Karabiner Elements, which I already use to create my Hyperkey (i.e., caps lock maps to ⌃⌥⇧⌘), it is easy to:

  • display two different palettes, one for a left modifier press (e.g., left ⌘ press), the other for the right modifier press (e.g., right ⌘ press),

  • display these palette with a simple press of the modifier, e.g., left ⌘ (versus the modifier combined with a non-modifier, e.g., left ⌘+e). This LeaderKey-like feature provides the one key reduction per macro launch.

So here's my method. Within a Karabiner Elements Complex Modification I've mapped a press of the left ⌘ to ⌃⌥⇧⌘+Key Pad 5. (It's beyond the scope of this post, but I've added similar Complex Modifications for other modifier presses, i.e, left ⇧, left ⌃, left ⌥, right ⌘, right ⌥, and right ⇧.)

I've intentionally mapped these modifier presses to hot keys that I wouldn't otherwise use. In fact, on my MacBook Pro, since its keyboard doesn't include a keypad, there's no chance that I'd be actually pressing ⌃⌥⇧⌘+Key Pad 5.

Here's the Karabiner Elements Complex Modification:

Screenshot ( expand / collapse )


Configuration ( expand / collapse )
{
    "description": "Left ⌘ → ⌃⌥⇧⌘+[5]",
    "manipulators": [
        {
            "from": {
                "key_code": "left_command",
                "modifiers": { "optional": ["any"] }
            },
            "parameters": {
                "basic.to_if_alone_timeout_milliseconds": 250,
                "basic.to_if_held_down_threshold_milliseconds": 250
            },
            "to": [
                {
                    "key_code": "left_command",
                    "lazy": true
                }
            ],
            "to_if_alone": [
                {
                    "key_code": "keypad_5",
                    "modifiers": ["left_shift", "left_option", "left_control", "left_command"]
                }
            ],
            "to_if_held_down": [{ "key_code": "left_command" }],
            "type": "basic"
        }
    ]
}

(All the other modifiers mentioned above include very similar Complex Modifications.)

Once the Complex Modification is created, I use a leftpress to assign a hot key trigger to the macro that renders the Keyboard Maestro palette of choice.


Voilà! Press left ⌘ to display the Keyboard Maestro palette, then press a single letter, number, or symbol to run a palette macro to complete a common task.

3 Likes

Not native, yet @noisneil accomplished this by using global variables:

1 Like

Oops, I forgot to mention @noisneil's method. I previously used his creative approach but have since moved to Karabiner Elements since I wanted to display palettes with an isolated press of a modifier.

Maxing out their existing keyboard or getting the best from using a keyboard? If you mean the latter, the answer is, as always: use a programmable keyboard. (Shakes tambourine.)

For general (possible) interest: I always recommend the Apple Magic Mouse 2 for those occasions when the keyboard is not a better interface for a (user) action. YMMV.

The gateway drug to QMK. :+1:

1 Like

Yes, that's what I meant :slight_smile:

Sure, you use Karabiner for other things too. For all others it is sufficient to switch caps lock to right control in macos.

If I remember correctly, you also use BTT, which is a good idea :slight_smile: You can do the same with it. But I think your method with the palettes is superior because the sequence of letters is displayed in case you don't remember them.

It's nothing you probably haven't already thought of yourself :slight_smile:

Each letter can perform two actions (short/long press), without any modifier. This basically works like a dream. However, you have to do this for all letters (short press = letter, long press = something else) otherwise the letters will be twisted, when typing quickly.

Unfortunately, I have never been able to get used to the fact that writing is slightly delayed as a result. All letters are typed when the key is released. So I only use it in apps where I don't have to write much. It works perfectly there.

Haha, I knew you were going to say that :slight_smile:

1 Like

I don’t enjoy having to say it… but I do have to say it. :laughing:

Yes, you do :rofl:

Because of you, and only because of you :slight_smile: , I watched a few videos on youtube about programmable keyboards.

Ok, I see what you mean. The possibilities really are endless. That's tempting.

But is it normal that such keyboards only show colored lights? No letters? My ancient brain could never remember these combinations. I would need a keyboard that somehow shows what is executed with which layer. A kind of touchbar.

And unfortunately I'm traveling a lot. That's why I depend on my built-in keyboard. So I'm still looking for the impossible. Something that works without a modifier but still doesn't interfere with fast writing ... And if he hasn't died, he's still searching. :joy:

1 Like

Joking apart, I don’t want it to be a bore about such devices; I just think they would benefit some more people here beyond those who do currently use them.

“Normal”... Hmm... This isn’t about “normal”! :smile: You can configure things as you wish.

You surely remember that Keychron range that I mentioned to you. Those keyboards have a conventional layout and all the keys are labelled. So that is an example of one option.

I use a split keyboard (Lily58 layout), for which I chose lettered keys. However, I do not often look at what is written on the keys, because I am able to touch-type on it (no, that did not happen overnight, but it never happened for me at all in the days of using a conventional layout). So by this stage, I could manage with blank keys at least most of the time! As for coloured lights—they always just seemed a gimmick to me but some people enjoy a light show, I suppose.

Choose the layout of your layers logically, and I do not think you will often need a reminder.

Look at the screen, not the keyboard. :wink:

There are portable options but yes, that is certainly a significant consideration. Nods.

2 Likes

When I figure out how to turn lead into gold, you'll be the first person I tell. Then you can no longer say “use a programmable keyboard”. Seriously, it's a pleasure to talk to you.

2 Likes

Good luck on your mission and I hope you find a solution that suits your needs!

As for alchemy, though: it’s not the metaphor that I would use. :wink:

1 Like

This is quite exciting. Looking forwads @_jims to your mods.

@zeltak I was one of the original posters trying to find a Leader Key alternative on KM. For me, the biggest "challenge" was triggering the leader key with a single modifier keypress. This can be accomplished not with KM but instead with something like BetterTouchTool.

I mean, I'm not sure whether you're asking a rhetorical question. Some people don't know about KM. For others, LeaderKey.app might provide a more slick mechanism.

Following @_jims 's work, I've been using a setup like that. It's not as nice as LeaderKey.app because it requires some manual work setting up, but the work is minimal, and it grants you the overall flexibility and power of KM. LeaderKey also offers the native ability to launch with a single keypress (instead of modifier + key), but as I said, this can be dealt with with BTT.

With the debate between KM vs. other tools, I feel like there are echos of the classic debate of Apple vs. PC. Mac didn't do things that absolutely couldn't be done on PC, but they did it in such a slick and intuitive way. Think of the difference between KM and Window's Autohotkey.

My point is that we shouldn't just dismiss some of these third-party alternatives to KM. The truth is that sometimes, interface and intuitive controls/mods really do help. KM has a very old-school "power tools" view of things. This is why we like it. But it may not have same bells and whistles as alternatives.

To do similar, not the same. For example, a true leader key is a single key, not a chord, and is only available in certain modalities. And, of course, doesn't require a palette that obscures what you're doing...

KM's adherence to Public APIs and people's desire to expand leader key use outside of its usual, non-editing (eg vims "Normal" mode), context can make it difficult to fully replicate leader functionality via KM. You can get close -- and, personally, I prefer the KM "hot key, Conflict palette" method -- but it's just not the same if you're used to vim etc.

Very much this. Especially when those alternatives work very well with KM, so aren't really "alternatives" at all!

I don't know if anyone is interested. I'll just mention it briefly. For people who work with the internal keyboard and trackpad, this trackpad can be the “modifier” (a kind of LeaderKey). It may take some getting used to, but it works well.

You keep both hands on the keyboard and hold one thumb on the trackpad. Now all letters can trigger something else. So eg “F” is “F”, but thumb + F triggers something else.

It's very simple and works blindly because the thumb/finger always hits the trackpad :slight_smile: This "system" can be extended as required: Left/right thumb, 1/2/3/4 fingers on the trackpad. Or even the position of the fingers on the trackpad.

Of course it doesn't work with KM, but it works with BTT and as far as I know also with Karabiner. Both apps are also used by many KM users.

wow thank you everyone for the very insightful conversation, learned alot from it!

Z

One of the things I love about Keyboard Maestro is how well it integrates with other power tools. You don't have to choose one over the other.

I use GokuRakuJoudo to manage my Karabiner-Elements configuration. This combination lets me create workflows that neither tool could do alone.

For example, you can solve this common problem: "I'm working on a project and need fast access to 3-4 specific apps, but I don't want to create permanent hotkeys for them."

My solution is a dynamic app launcher:

  1. Need to quickly access your Word processor? Bring it to the front, hit Hyper + Spacebar, and press W. Now Spacebar + W is a dedicated hotkey for your editor.

  2. Switching to your design tool? Bring it up, hit Hyper + Spacebar, and press D. Now Spacebar + D instantly opens it.

You can set up a whole custom palette of app shortcuts for your current task in seconds.

Karabiner handles the low-level magic of creating the temporary "modes", and then it calls on the power of Keyboard Maestro to do the actual work of identifying and launching the apps. It's a great example of getting the best of both worlds