Kenny Baustert

Open source

Cmd-Tab

Cmd-Tab is my replacement for the macOS app switcher. Press ⌘-Tab and it switches between apps the way the built-in one does, or between every window you have open. It also does keyboard tiling, search and per-app rules, and runs on macOS 14 and later.

The Cmd-Tab switcher, showing eight running apps with Ghostty selected

What it does

How it's built

Taking over ⌘-Tab

macOS reserves ⌘-Tab at a level no public API can intercept. Cmd-Tab turns the system switcher off through a private SkyLight call, then claims the keystroke with a session-level event tap before the focused app sees it. The private call is looked up at runtime instead of linked, so if a future macOS drops it, Cmd-Tab logs that it can't take over and keeps running. Quitting gives you the system switcher back, and so does logging out after a crash.

Keeping the event tap alive

The tap runs on the main thread, and macOS kills a tap that stalls, which takes every keystroke on the machine with it. Every Accessibility call is a message to another process and can hang on a frozen app, so none of them run inside the tap. Window lists are cached and refreshed on background queues. The panel opens from that cache straight away, and each app gets 250ms to answer before it's skipped.

Swift 6 language mode

The package builds in Swift 6 language mode. Those threading rules used to be conventions I had to remember, and now the compiler checks them. The few places where it can't see a guarantee carry a note at the declaration saying why the code is safe.

Battery

Almost everything is driven by system notifications. The two checks that have to poll run every five seconds on power and every thirty on battery or in Low Power Mode, since neither is watching for anything that changes quickly.

Stack

Source

github.com/kdbaustert/Cmd-Tab · Releases

Other apps

Get in touch

Most of my paid work is PHP and Laravel. If you have some, tell me about it.

I'm available now for full-time roles and contract work, remote or hybrid around Lakeland, Tampa and Orlando.

kenny@kennyb.dev · Resume (PDF)