Guide
Context-Aware Shortcuts on Mac, Explained
Updated

A context-aware keyboard shortcut is one key combination whose action depends on where you are - the app in front of you, the website in the tab, sometimes the specific window. Press the same chord in a video call and it mutes you; press it in a browser and it opens your inbox. You remember one mapping, and the computer resolves the rest.
That’s the opposite of how Mac shortcuts normally work, and it’s why most people stall at a handful of them.
Why the same shortcut means different things in different apps
Every app picks its own keys, to fit its own menus, chosen by its own designers. None of them coordinated. So your shortcut “knowledge” is really dozens of separate, conflicting little dictionaries - one per app - and the price of a wrong guess is doing the wrong thing or, worse, not knowing a shortcut exists at all.
⌘K is the standard example:
| App | What ⌘K does |
|---|---|
| Google Docs | Insert a link |
| Slack | Open the quick switcher |
| Terminal | Clear the screen |
| Notion | Open the command palette |
| Figma | Open the shortcut panel |
Five apps, five meanings, one motion. Nothing is wrong with any of those choices individually - they’re all reasonable in isolation, which is exactly the problem.
The two usual workarounds, and why both fail
- Memorize per app. Learn each app’s keys cold. It doesn’t scale and it doesn’t transfer - learn one app and you’ve learned one app. The moment your tool changes, the knowledge is worthless.
- Set your own global keys. Pick combinations you like and apply them everywhere. This collides instantly: the good chords are already taken, and your custom binding clobbers something the app needed.
Both accept the same broken premise - that a shortcut should map to one action, everywhere. Flip that premise and the problem changes shape.
The better model: one chord, resolved by context
Bind the chord once, conceptually, and let it resolve per app, per website, even per window:
Hyper + Mmutes the call in Zoom, and on a Chrome tab it opens Gmail.Hyper + Rmakes text red in Google Docs, and in a mail client it replies.
Notice what’s being remembered: not “the red-text key in Docs is X and the reply key in Mail is Y,” but “Hyper + R is the do the obvious thing key.” The mental model collapses from N dictionaries down to one. That’s the entire benefit, and it’s a large one - the bottleneck with shortcuts was never fingers, it was memory.
What makes it work in practice
Two properties separate a context layer that helps from one that adds noise.
It has to be collision-free. Context-aware only helps if the layer doesn’t fight the apps underneath it. That’s why this belongs on a hyper key - a modifier combination almost nothing binds - so the chords sit on top of every app’s existing shortcuts instead of wrestling them.
It has to be discoverable. “One key, many meanings” is unusable if you can’t see the current meaning. The layer needs a cheat sheet: hold the key, see what’s bound right here, right now. The scope you’re in should be visible, not guessed.
This is also the cleanest way to describe how a command layer differs from its neighbours. A launcher you summon and type into; a macro engine you program. A context-aware layer sits under your fingers and does the right thing for where you are. If you’re weighing the categories, the comparisons lay them out side by side.
Can macOS do this on its own?
Not really. App Shortcuts in System Settings can bind a key to a named app’s menu command, which is per-app in a narrow sense - but it’s one chord to one fixed command, it only reaches existing menu items, and it can’t route the same chord to different actions across apps. The full rules and limits are here.
Anything beyond that - launching an app, muting a mic, opening a URL, acting per website rather than per app - needs a layer that sits above macOS and resolves context itself.
Where to start
If the idea appeals, the order that works is: set up a hyper key so you have a collision-free place to put things, then choose bindings that mean something to you rather than inheriting someone else’s, then lay them out so they don’t collide.
And if you want to know what your apps already ship with before you start rebinding, the shortcut cheat sheets list the defaults app by app.
Frequently asked questions
What is a context-aware keyboard shortcut?
A single key combination whose action is resolved by where you are when you press it - which app has focus, which website is open, sometimes which window. Hyper + M can mute a call in a video app and open your inbox in a browser tab, because the layer checks the context first and then fires the matching action. You remember one chord instead of one chord per app.
Can macOS scope a keyboard shortcut to a specific app?
Partly. System Settings → Keyboard → Keyboard Shortcuts → App Shortcuts lets you assign a shortcut to a named app, but only for commands that already exist in that app's menus, and the binding is fixed to that one command. It can't route the same chord to different actions in different apps, and it can't reach anything that isn't a menu item. That's the gap a remapping layer fills - see creating a custom shortcut on Mac.
Why do the same shortcuts do different things in different apps?
Because every app chooses its own bindings to fit its own menus, and nothing coordinates between them. There are only so many usable combinations of ⌘, ⌥, ⌃ and ⇧ with a letter, so collisions are the default state of a Mac with a dozen apps installed rather than an anomaly.
Doesn't one key meaning several things get confusing?
It would, without a way to see the current meaning - which is why a context layer is only workable with a cheat sheet. Holding the trigger key shows what's bound right now, for the app in front of you, so the active scope is visible rather than remembered. The confusion people actually experience today comes from the opposite problem: many chords, each meaning something different, with nothing on screen to remind them.
Is this the same as a macro or an automation?
No. A macro records or programs a sequence of steps and replays it. A context-aware shortcut binds one trigger to one known action and picks which action by context - there is no sequence and no programming. The two can overlap in what they achieve, but a macro engine asks you to build the behaviour, while a context layer ships with it.