v1.5.1
Hotfix
- Fix bug causing cmdtab to stop remembering new window activations—oof! 😖
- Fix crash when invoked with 0 windows
- Change icon to vibrant blue to suit both light and dark themes
- Remove "show delay" and "ignore minimized" non-feature
v1.5
Highlights
- Apps and windows are now sorted by activation order
- Fix stuck modifier keys and Alt-key inconsistencies compared with Windows Alt-Tab
- New (placeholder) icon
- Prettier message dialog
- UWP handling (icons not yet)
- Dark mode and accent color awareness
- Massive memory usage reduction (mind you, cmdtab is already very tiny!)
- Fix text alignment bug
- Faster keyboard hook (very important!)
- Alt-Q to quit selected app
- Select first app when on bare desktop
- Fix crash caused by some apps' product name (fixes #2)
Story Time
After much deliberation and study, cmdtab has been rebuilt to support true activation order. What's that you say? Doesn't cmdtab—the best macOS-style app/window switcher for Windows—already support that? Well, cmdtab has been overpromising and underdelivering this whole time.
Previously cmdtab relied on the order that Windows gives its top-level windows in when the EnumWindows function is called, and that order is the Z-order. The Z-order and the activation order are in some circumstances different, and not so subtly at that. If you minimize a window it is sent to the bottom of the Z-order, and therefore, in versions of cmdtab prior to v1.5, that window would be displayed last in the cmdtab switcher, even though it was in the foreground just a moment ago.
Windows has no documented API for querying the activation order of desktop windows, only the Z-order. This has put me on the path to discover the best way to keep track of the activation order of windows. There are many possible solutions to this, each with merits, quirks, gotchas, both subtle and not. Especially minimizing any involvement with the going-ons of the Windows shell was a goal in my search. Although in hindsight the solution in cmdtab is at once obvious, it was nevertheless arrived at only after considering what felt like every other possible solution. This gives me confidence, and the results speak for themselves.
Coupled with fixes for seemingly inscrutable bugs regarding stuck keys and subtly mismatching behavior compared to Windows' stock Alt-Tab switcher, along with a near astronomical improvement in memory usage and window handling capacity (70% memory usage decrease and yet 3200% increase of window capacity!), as well as color theme awareness and rudimentary handling of pesky UWP windows, this is clearly the best version of cmdtab yet.
It has taken close scrutiny of subtleties of the Win32 API to arrive here; the minutia of which knowledge is required to eek out the minimal surface area for a dead simple window switcher is surprisingly vast.
But now the jank is gone. Go forth and enjoy finally knowing wtf is going on with your Windows desktop. 🌈
Previous patches
See below for previous patch notes: v1.5, v1.4, v1.3, v1.2 , v1.1 and v1.0.