Multi-key shortcut possible?

I'm trying to have way too many shortcuts that work globally and don't interfere with any of the apps I'm using. This is especially difficult with programming editors like Cursor/VS Code.

In order to avoid having too many single letter/number hotkeys/shortcuts, I'm trying to create a multi-key shortcut.

For example, for opening some frequently visited URL, I could use multi-key shortcut. For example, if I want to open Trello board of a client called Folivoro, I (wish I) could assign the keyboard shortcut CTRL+T+F (CTRL+T for Trello; F for Folivoro). Similarly, if I wanted to open Trello board for a different client called BetterTool, I could assign CTRL+T+B, etc. etc.

Is there some way to capture key sequence, such as CTRL+T+B?

Here's my multi-trigger try:

  1. Trigger on SHIFT+CTRL+H => sets variable + shows HUD for feedback
  2. I tried adding trigger on a single letter "C", with advanced conditions Condition: currently_blocking_keyboard == 1 => this blocks typing letter "C" even when advanced condition is not met. There's no "passthrough" of the trigger when the condition is not met. Am I missing something. I also tried without advanced condition and have simple if-block. Same result.

Any way to achieve this would be greatly appreciated.

PS In "Assign/Set Value for Variable" action, it would be useful if for Value you could use {variableName} just like you can use it to show it in HUD.
PPS In the same action, at the bottom "See the documentation for more info." would be useful if there was a direct link to documentation since BTT's documentation is huge and would be great to save some time.

Thanks!

Have you tried using a key sequence that only works when the keyboard is blocked?

For example: right cmd down (blocks the keyboard) + as many letters as you want. right cmd up, reactivates the keyboard.

2 Likes

Have a look at this for an example with the approach @Frank1 described:

Alternatively you can do it like this, using the BTTLastUsedKeyboardShortcut variable in a condition (requires a relatively recent version):

There are various more ways to achieve this, but I think these are the best options

1 Like

@Frank1 ahhh that's pretty cool! I completely missed the Key Sequences as a separate settings pane in the dropdown.

I've played a bit and managed to achieve 99% of desired functionality and I'm quite happy with the end result. (It's good enough™)

One suggestion for improvement would be possibility to add HUD or some other feedback as the key sequence is being recognized. For example, I have few quite long key sequences: "hcla" and "hclst". Without feedback, it's a bit of blind guessing trying to type "hclst", but it's doable.

I'll mark your reply as solution. Thank you!

Thanks @Andreas_Hegenberg! :pray:

BTT remains the no.1 app I use and recommend to everyone on macOS.

I would advise against that. The fact that you need "feedback" is the whole explanation. It's complicated to type and you won't remember at some point.

In my opinion, two letters make sense. In your case, perhaps “ha” and “ht”.

I have been using these shortcuts from within the browser already, called Site Search. In Chromium browsers: Manage search engines => Site Search.
I'm familiar with many of these and, if I forget them...I don't care. When I need the shortcut again, I can check if I already have it and remind myself of what the shortcut is...or create a shortcut if one doesn't exist.

Speaking of remembering/forgetting, if you have memorized a good enough (or many) association(s) to the shortcut, you won't forget it.[1]

To me: hcla and hclst mean something:

  • hcla => heroku civic lift activity tab
  • hclst => heroku civic lift staging
  • hmuni => heroku muni
  • hmunist => heroku muni staging

Similarly, I have the same shortcuts to open the actual sites, without the letter "h":

  • cl => civic lift website
  • clst => civic lift staging website

I'm not sure if it's possible to have "cl" and "clst" key sequence such that "cl" triggers with delay (waiting for possible completion of "clst" key sequence). I use these shortcuts at least once a week.


[1] just like it's 100 times easier to remember super long, but meaningful (to you) password vs the short but cryptic (to you) one:

  • "my son is 3yo" is much easier to remember than "msi3yo!"

@Andreas_Hegenberg is there some way to have trigger only get triggered when the conditions ("Advanced condition" or similar) is met, and otherwise it just lets the macOS native keyboard shortcut functionality.

Basically what I mentioned earlier:

  1. I tried adding trigger on a single letter "C", with advanced conditions Condition: currently_blocking_keyboard == 1 => this blocks typing letter "C" even when advanced condition is not met. There's no "passthrough" of the trigger when the condition is not met.

Yes, that is possible

If you're typing such complicated strings and you want to see what you're typing, use the Spotlight window.

Not that I would recommend it, but it works.

Open the Spotlight window, type “hmunista”, something is executed.

This requires the condition that the key sequence only works when the Spotlight window is visible. Have a look at the “Visible Windows Viewer”.

Yes, otherwise the condition would make no sense :wink:

1 Like

Awesome! Thanks! BTT never disappoints! :slight_smile: