Creating a Hot-Key Trigger Using Two Keystrokes, One After the Other?

Hi All,

Now that I've solved my issue of getting KM going, I wanted to determine whether I can create some hotkeys that I'll remember for Finale.

I wanted to create a (two-part) trigger where I:

  1. Hold down the option, shift and S key, and then
  2. (Whilst holding the above keys down) press the T key, and then finally
  3. Release all four together.

This is to correspond with the STaff tool in Finale. (This sequence makes it easier for me to remember).

So I'm just trying to determine what I would call each step of the process. Would the first part (opt-shift-S) be 'this hot key is down', and the second part (T) 'this hot-key is down'? And I've also got a hot key that is the opt-shift-S only, so how do I make the above macro different from the one that doesn't include the extra 'T'?

Thanks a lot for your help in advance!
Andrew Harrison

One way to do this is to use a timeout within which you have to hit T. In this example, it's set to 50 1/100s, via the gear icon:


Finale - Staff Tool.kmmacros (22 KB)

Macro screenshot

However, I would suggest that if the issue is forgetting hotkeys, you might want to have a look at Palettes or the Trigger Macro by Name action to show available macros. These can be used in a number of ways, but the way I like to use them is to choose one hotkey (in my case, §) to show all available macros for the current app and another (⌥§) to show all global macros.

In use:

Trigger Palette
Hit hotkey corresponding to desired visible macro in palette


Trigger Macro by Name
Select macro in the list
Hit Enter

I've opted for the latter, and I use it like so:

I set up two smart groups:

App-specific Smart Group Screenshot


Global Smart Group Screenshot

CleanShot 2023-01-22 at 13.38.41@2x

I trigger the following macro using § or ⌥§. It uses a submacro to move the cursor to the right of n: (which enables you to search by name):

Trigger Macro By Name (Apps:Global).kmmacros (58.3 KB)

If you prefer the Palette approach, it's simpler to set up. Just add the macros you want to a Show Palette of Macros action and give it a hotkey trigger. Here's my Logic Pro one:



An addition to the palette solution provided by @noisneil

If you use short/long press it is even closer to what you want.

  • Short press ⌥⇧+s does what it does.

  • Long press ⌥⇧+s opens the palette. Keep ⌥⇧ pressed, but release "s" and press "t".

What "t" does on the palette must have the shortcut ⌥⇧+t.

I haven't tested this, but it works in my head. :slightly_smiling_face:

Can I amplify the suggestions here to use palettes, especially conflict palettes. Really they behave in an exactly equivalent way to what you are looking for. Create a palette which comes up when you hold the first cluster of keys down.
This will bring up the palette and you can press an item you keep there and preface or hot key within it. It sounds a bit fussy and I don't know the app you are using I will say but one soon gets very fast on palettes: it soon feels like one is just pressing a sequence of keys.
Really I am not a power user and I use palettes mainly now. I think I would look closely at what @noisneil suggests.

@tudor_eynon Can you explain how, you would do that with a conflict palette?

Hopefully @tudor_eynon will chip in with their own examples, but say you've got a bunch of macros that open web pages:

  • Google -- opens Google search page
  • Institute Intranet -- opens work's Intranet home
  • Institute OOH -- opens my work's online sign-in/out page
  • Institute Public -- work's public web page
  • Weather - Home -- BBC weather for home
  • Weather - Mum -- BBC weather for where Mum lives

Give then all a ⌃B (for "bookmark") hotkey and then

  • Google would be ⌃B then G
  • Signing in at work would be ⌃B then I then O
  • Checking the weather before visiting Mum -- ⌃B then W then M

...and so on. Not the single, multi-key, chords OP was looking for but easy to set up, easy to use, and you've got the Conflict Palette as a visual prompt until muscle memory takes over.

@Nige_S Understood. But your ⌃B is his ⌥⇧+s and then this shortcut alone doesn't work anymore because it directly opens the conflict palette, or am I wrong?

I think @noisneil 's way is better and easier, With a conflict palette, when I looked at it again, you might need an extra key stroke. Let me leave it there because I don't know the app you are using or exactly what you want to do and that is sometimes what one needs.@Nige_s seems good though? I would also consider rethinking the strategy maybe? My own experience is that when I run into something complicated to instigate there is often another way altogether to do the sequence of things I need.

Have you tried just making a macro which does whatever you want option shift S to do, then a pause and then the action for whatever you wanted Option shift S T to do? Pauses are very useful, a bit Heath Robinsony but work well I find. They can help you get a macro to work at all sometimes even.

So it is just a simple sequence of actions. Which is the whole point. You could also experiment with the Control Flow > If Then Else action. You could set a option shift S trigger to do something, then and If Then Else action to trigger something if and only iff the T key is pressed down. You might need to experiment a bit with the If Then Else action. It is very useful and neglected.
I haven't actually tried to make a macro to do this recently, so bear that in mind. The power users here might correct me if they would.

No, you're quite right -- OP would have to use an extra keystroke to run his original macro. But if OP is going for a "relating hotkeys to the letters the command starts with" approach then, IMO, consistency is important and so the original macro should have that extra key.

Hello everyone. Thanks for all of the input! I'm going to read through all of the responses, and see how I go. Noisneil, your suggestions sound great. I'll look at the macro and see if I have any questions.

Appreciate it, thanks all!
Andrew Harrison

1 Like