I refuse to use Cmd+Tab to juggle 12 open Mac apps
Sometimes the shortcut cmd+tab is not so useful to navigate the many apps I have open while I work on my Mac. Here’s what I do instead.
The first change was simple: reassign Cmd+Space to show only applications. Go to
System Settings → Keyboard → Keyboard Shortcuts → Spotlight, and set “Show Apps” to Cmd+Space.
I moved the full Spotlight search to shift+cmd+space.
Now instead of tabbing through a carousel of app icons, I just start typing the name of the app I want. The results are faster and cleaner than default Spotlight. This alone was a meaningful upgrade.
But if you’re comfortable with a bit of Lua and don’t mind a small setup investment, pairing Hammerspoon with Karabiner-Elements takes it further.
I rarely use capslock, so I repurposed it entirely. Karabiner turns it into a Hyper Key (⌃⌥⇧⌘) with the rule caps_lock_to_hyper_or_esc_if_alone. I also remapped cmd+tab so that ‘h’ and ‘l’ keys navigate the app switcher instead of the arrow keys with rule vim_like_switch_apps, keeping my hands on the home row.
Hammerspoon (with AppLauncher) handles the rest, and the script is straightforward.
$HOME/.hammerspoon/Spoonscmd+tab rule (optional) vim_like_switch_apps$HOME/.hammerspoon/init.lua.
You can use the below script as a launching point for your own config.hs.loadSpoon("AppLauncher")local hyper = { "control", "option", "cmd", "shift" }spoon.AppLauncher.modifiers = hyperspoon.AppLauncher:bindHotkeys( { v = "Vivaldi", z = "Zed", p = "Proton Mail", t = "Trello", o = "Obsidian", c = "Calendar", n = "Notion", i = "IntelliJ IDEA" })Karabiner converts caplock to "control", "option", "cmd", "shift" for Hammerspoon.
If you need to use capslock as its original purpose you can use cmd+capslock to toggle it on or off.
I built app-launch shortcuts such as capslock+z for Zed, capslock+i for IntelliJ IDEA in the Hammerspoon Lua config.
These two modifications have made it much easier for me to navigate to other apps. At this point my fingers have memorized the movements, and I don’t have to think about it.
Cheers,
Anton
A step-by-step guide on how to set up wildcard DNS using dnsmasq on macOS, allowing developers to use meaningful local development URLs like couchbase.localdev.me instead of localhost. The setup process includes installing dnsmasq, configuring it, creating a DNS resolver, and verifying the configuration, making local development cleaner and more efficient.
2 min readA concise guide on configuring a local development proxy using Docker and NginX Proxy Manager, detailing setup steps, service routing, and benefits for managing multi‑service environments.
3 min readIn this article we'll generate a key and a root certificate to use in generating other certificates. This can be helpful if you run many applications during development that need ssl certificates. We generate a root certificate so we can trust the root cert once, and all our generated certificates will be honored by our operating system.
4 min read