Releases: kdbaustert/Cmd-Tab
Release list
Cmd-Tab 1.0.1
This build is ad-hoc signed, not notarised — there is no Apple Developer Program
membership behind it yet. macOS Gatekeeper will call the download damaged or from an
unidentified developer on first launch. To open it: right-click Cmd-Tab.app → Open, or
xattr -cr /path/to/Cmd-Tab.app in Terminal.
A bug-fix release, headlined by the invisible switcher: macOS could quietly pin the switcher's window to one Desktop, so ⌘-Tab kept switching while the panel only ever appeared on that Desktop. The self-repair for this now actually works.
Fixed
Switching
- The switcher shows on every Desktop again when macOS pins its window to one; the repair in 1.0.0 silently did nothing.
- The ✕ on a browser-tab tile closed the whole window with all its tabs. Tab tiles no longer offer close.
- This desktop now holds for the whole session; other Desktops' windows no longer slip in a moment after the panel opens.
- With Hide if it is frontmost on, picking a specific window of the front app now switches to that window instead of hiding the app.
- Releasing the trigger on the run as shell command tile no longer runs the command — that takes Return or a click now.
localhost:3000and otherhost:portsearches open in the browser instead of doing nothing; searches containing& + = # ?are sent correctly.- Tab search covers the recent apps first, so one app with a huge window no longer crowds the browsers out.
- A favourite whose app was uninstalled no longer stays as a tile that does nothing.
Window management
- A modifier-drag resize that reaches a screen edge keeps the resize instead of snapping the window to half the screen.
- Modifier-drag, hold-and-point and Desktop moves leave floating windows (picture-in-picture, panels) alone instead of acting on the window underneath.
- The ½ → ⅔ → ⅓ width cycle starts over after the window was moved by hand.
- Previous/next display now follows the physical left-to-right arrangement, in the tiling chords and in the switcher.
- A launch rule that names a display places the window on that display even in apps that apply window moves late.
- Restore after tiling returns to the window's original spot even after an undo-then-tile sequence.
Settings
- Turning a setting back to its default now syncs to your other Macs; before, the other Mac kept the old value and put it back.
- Exported settings and the config file carry only what you actually set.
- The last settings change before quitting is saved; it used to be lost if you quit within half a second.
- A corrupted number in stored settings no longer crashes the app on every launch.
- The iCloud sync switch can be turned off after signing out of iCloud.
- Shortcut import no longer refuses a chord that differs from an existing one only by Shift.
- The About tab's permission status updates when you return from System Settings.
Also faster: filtering, hover previews and focus-follows-mouse all do less work per event, and the app holds a few MB less memory.
Known issues
- Apps with only minimized windows still show under Hide apps with no windows.
Full Changelog: v1.0.0...v1.0.1
Cmd-Tab 1.0.0
This build is ad-hoc signed, not notarised — there is no Apple Developer Program
membership behind it yet. macOS Gatekeeper will call the download damaged or from an
unidentified developer on first launch. To open it: right-click Cmd-Tab.app → Open, or
xattr -cr /path/to/Cmd-Tab.app in Terminal.
The first stable release. The app is the same as 0.5.1-beta, which fixed about fifty-five defects found in a full read of the source; everything since is documentation and release tooling. Existing installs are offered it through the built-in updater.
Known issues
- Apps with only minimized windows still show under Hide apps with no windows.
Full Changelog: v0.5.1-beta...v1.0.0
Cmd-Tab 0.5.1-beta
This build is ad-hoc signed, not notarised — there is no Apple Developer Program
membership behind it yet. macOS Gatekeeper will call the download damaged or from an
unidentified developer on first launch. To open it: right-click Cmd-Tab.app → Open, or
xattr -cr /path/to/Cmd-Tab.app in Terminal.
A bug-fix release: a full read of the source turned up about fifty-five defects, and this fixes them.
Fixed
Switching
- Reaching a window on another Desktop through its app's Window menu now finds the window by its title; before, it almost never had a title to match.
- A later pick now takes over from one still waiting for macOS to travel, instead of queueing behind it.
- Tab search keeps to its time limit inside a slow app.
- Hide apps with no windows no longer counts menu-bar-only windows as real ones, while still keeping apps whose windows macOS fails to place (seen with Ghostty).
- Releasing ⌘, Return or Tab on a filter that matches nothing now closes the switcher without switching. A click or ⌘-number still takes the tile you named.
The panel
- The ✕ on a tile closes that tile, not the marked set.
- Fallback tiles follow the filter as you type instead of freezing on the first miss.
- The panel shrinks to fit when there are more tiles than room; matching ignores accents.
- Confirmation alerts can no longer freeze the app behind an invisible switcher.
Window management
- An extra modifier on an armed chord cancels instead of snapping.
- Never-tile apps keep their modifier-clicks.
- Window-title rules now also apply to drag-snap, display layouts, launch arrangements and Desktop assignments.
- Edge and size steps never move an edge the wrong way; Show All restores every Hide All.
- Focus-follows-mouse leaves menus and the Dock alone.
Settings
- Hand edits to the config file (including through a symlink or a
git pull) are no longer reverted. - Reset and Import stick, and Import replaces rather than merges.
- A trigger with no modifier falls back to the default instead of swallowing a bare key.
- One bad rule or list entry no longer empties the whole list, and unknown keys survive a rewrite.
- A failed theme export or save now tells you, instead of failing silently.
Known issues
- Apps with only minimized windows still show under Hide apps with no windows.
Full Changelog: v0.5.0-beta...v0.5.1-beta
Cmd-Tab 0.5.0-beta
This build is ad-hoc signed, not notarised — there is no Apple Developer Program
membership behind it yet. macOS Gatekeeper will call the download damaged or from an
unidentified developer on first launch. To open it: right-click Cmd-Tab.app → Open, or
xattr -cr /path/to/Cmd-Tab.app in Terminal.
New
- Tiling toggle. Pressing a tiling shortcut again puts the window back where it was, and a second press undoes the undo.
- Tab search. A new tabs scope lists every open tab of each running app's front window — Safari, Chromium browsers and Ghostty.
- Marked set. ⌥-Space or ⌥-click marks tiles; window actions apply to the whole set, and ⌥-T tiles two to four marked windows side by side.
- By desktop order. A third sort order that follows your Desktops' left-to-right layout.
- Desktop assignments. After a display change, apps the Dock keeps on a Desktop are moved back there.
- Per-app rules gain a launch display and window-title rules (hide, always expand, never tile by a regex on the title).
- Filter fallbacks (all off by default): open the query as a URL, search the web, or run it as a shell command.
- Shortcuts menu in the menu bar item listing every bound chord, and import of hotkeys from Rectangle, Rectangle Pro or AltTab, reviewed before anything is applied.
- Raycast and Alfred integrations under
integrations/, driving every tiling arrangement over thecmdtab://scheme. - Shortcut conflicts now also flag chords macOS itself owns (Mission Control, Spotlight, App Shortcuts).
Fixed
- The switcher could stop appearing on every Desktop but one. The window server had pinned the panel to a single Desktop while the app believed it was on all of them; it now checks and repairs that every time it opens (and the drag-snap overlays do the same).
- ⌘-Tab could be lost after a restart — the outgoing copy handed the shortcut back to macOS after the new one had taken it. The new copy now notices and takes it back, and logs the two ways a press can vanish (secure input held elsewhere, native ⌘-Tab re-enabled).
- Picking a window on another Desktop that macOS declined to travel to is now reached through the app's own Window menu instead of appearing on the wrong Desktop and snapping back.
- Moving a window to the next/previous Desktop works on macOS 27 again (Mission Control's accessibility tree moved), the drop lands on the right thumbnail, and the moved window is raised on arrival.
- Snap-by-dragging redraws its preview when the same edge is reached on an adjacent display.
- The panel sizes itself per display when shown on all of them.
Full Changelog: v0.4.0-beta...v0.5.0-beta
Cmd-Tab 0.4.0-beta
This build is ad-hoc signed, not notarised — there is no Apple Developer Program
membership behind it yet. macOS Gatekeeper will call the download damaged or from an
unidentified developer on first launch. To open it: right-click Cmd-Tab.app → Open, or
xattr -cr /path/to/Cmd-Tab.app in Terminal.
Full Changelog: v0.2.0-beta...v0.4.0-beta
v0.2.0 — Critical keyboard-lockout fix, window drill-down, multi-display panels
- Preview strip appearing at the far-left screen edge, or not at all
- Hover highlighting and tile clicking silently breaking after the list relayed out
- Wrong app activating when ⌘-Tab was pressed with the pointer resting over the panel
- Long filter queries widening the panel and shifting clicks onto the neighbouring app
- Preview strip covering the tiles it was meant to sit clear of
- Scrolling directly over the switcher panel doing nothing
- Shortcut recording assigning to the wrong action, or nothing at all
- Action shortcuts silently unreachable when the trigger itself uses ⌥ or ⌃ — Settings now
refuses the conflicting combination and explains why - Undefined behaviour in preview blank-detection that could drop real windows at random
- Screen captures continuing after the hover moved on
Internal
- Test target added: 43 tests over the trigger-modifier logic, shortcut conflicts, filtering
and metrics - Event-tap callback no longer performs SwiftUI layout, Accessibility calls, or
LaunchServices lookups; tap-disable events are now counted and logged PanelGroup,PreviewCoordinatorandTriggerModifiersextracted;SettingsWindow
split into four files- Settings panes rebuilt as two columns with tooltips, in a wider window