Highlights
Browser tabs become first-class rows you can search, preview and limit; the panel is rebuilt as real glass with adjustable size, width and corners; and every setting can now be driven from a documented ~/.config/bettercmdtab/config.json.
Added
- Browser tabs are searchable: start typing to filter across open tabs as well as apps and windows, with results ranked by how well they match.
- Browser tab rows show favicons and live previews, so a tab is recognisable before you commit to it (#40).
- Tab rows carry the icon of the browser they came from, so two tabs with the same title are still tellable apart (#131).
- The number of expanded tab rows per window can be capped, so a browser with fifty tabs no longer floods the list (#144).
- Browser tabs also expand in the windows switcher, not just the apps switcher (#119).
- Every setting can be read and written from
~/.config/bettercmdtab/config.json, edited live while the app runs (#117). - The config file ships a JSON Schema describing every key, its type, default and allowed values, so an editor can complete and validate it.
- Live window previews, bounded so a wall of windows cannot run away with memory.
- Switcher text size and font face are adjustable, and both can be overridden per shortcut.
- The panel has compact sizing and theme options, a corner radius that goes all the way to square (#129), and a width slider for the List layout (#124).
- The switch sound can be picked from the system sounds or a file of your own (#113).
- Simplified Chinese (zh-Hans) is available (#95).
- Pinned apps can be reordered by dragging (#98).
- Mouse-mapped triggers support quick-tap stay-open, so a tap on a side button holds the panel open (#91).
- Long titles can be truncated at the start, middle or end (#90).
- The window-switch shortcut steps backwards through apps as well as forwards.
- Applications-only mode can drill into an app's individual windows without leaving that mode.
- The in-panel search key and the tab drill-in key are rebindable, per shortcut target.
- The switcher can open on the monitor of the active app rather than the one with the pointer.
- Hidden apps can be kept in place instead of dropping out of the list.
- Minimized windows can keep their position in recency order rather than sinking to the bottom.
- Window status glyphs can be hidden.
- Sliders accept an exact typed value instead of only dragging.
- The switcher's entrance and rise animations can be turned off.
- The grid can be held to a single row, shrinking its tiles to fit.
- About shows the commit a build came from.
Changed
- Settings is reorganised into ten task-shaped tabs — General, Profiles, Shortcuts, Switcher, Controls, Tabs, Apps, Appearance, Privacy, About — so a setting sits next to the feature it changes.
- Rank-by-best-match search, browser tab search, browser tab recency, instant Space switching, browser tab previews and live previews all graduated out of Experimental and are on by default.
- The panel reads as real glass rather than a blur, and the tab strip is rebuilt as a native glass bar.
- The switcher follows the macOS accent colour automatically, so there is no accent to keep in sync by hand.
- The in-panel search collapses into a chip so it fits the grid layout.
- Panel size is derived from a fixed scale instead of the display, so it looks the same on every monitor.
- Setting descriptions name the key you actually bound rather than assuming the default.
- The website is rebuilt on Next with the documentation published at
/docs, in English and Polish. - Reveal is faster: blocking work is off the ⌘Tab hot path, a warm reveal skips full rescans, and activation and window placement do their accessibility work off the main thread.
- The panel hides immediately on commit rather than waiting for the activation to finish.
- Accessibility and Secure Input are no longer polled continuously, only while a switch is actually in progress.
- Retained switcher views are bounded, and app picker icons resolve off the main thread.
Fixed
- The switcher no longer goes invisible after closing a full-screen app, over live full-screen Spaces, or when moving between displays (#46).
- Windows hidden by Stage Manager appear in the switcher again (#116).
- A window returning from full screen stays in the list instead of vanishing (#148).
- Switching to the panel no longer shows a stale frame left over from the last reveal (#146).
- Finder stays reachable after "hide all", instead of disappearing from the switcher for good, and "show all" now restores only the windows it minimised rather than reopening ones you had put away yourself (#168).
- Browser tab previews update promptly instead of trailing a second or two behind (#145).
- Checking browser tab access reports what happened instead of failing silently (#147).
- Browser tabs are ordered the way the browser draws them, keep their recency on a busy browser, and rank correctly when the window title carries a browser suffix.
- A search that fills up with browser tabs no longer hides matching apps and windows.
- Applications with sparse accessibility identifiers show every native tab rather than a subset.
- Search and letter shortcuts work on IME input sources that carry no Unicode layout data (#106).
- The ⌘` chord is recognised on ISO keyboards, and
/and\are matched by the character you actually typed on non-US layouts. - Recorded shortcuts are displayed using the current keyboard layout.
- Jump-straight-to-an-app shortcuts fire on the combination you assigned, and survive past the first chord (#120).
- "Stay open after releasing the modifier" works with Option+Tab and other non-⌘ triggers (#130).
- A scoped profile stays open while stepped by repeated chord presses and does not commit on a missed modifier release.
- Quick ⌘Tab respects window filters and the Space scope, and no longer activates an app with no open windows (#112).
- Refreshing after an action runs the full sort, so window recency and tab order survive it (#110).
- The minimize shortcut works on full-screen windows (#108).
- The Previews layout shows application names (#125).
- Third-party event monitors can no longer steal clicks meant for the panel.
- Update checks that hit GitHub's rate limit wait and say when to retry, and release details stay on screen when the API fails.
- Long setting descriptions no longer lose their last line in German, French and Polish.
Removed
- The accent colour option; the switcher follows the macOS accent instead.
- The Experimental tab. Nothing was dropped — each setting moved next to the feature it changes.
Thank you to @0916dhkim, @arthurlee116, @bazilek, @bboles, @elmarbransch, @iFaNGMiNGi, @jonaszuberbuehler, @juliorr, and @xinnyu for contributing to this release.
Full changelog: v26.6.1...26.7