cmdtab v1.0
First public release
Features
- Alt-Tab to show app switcher GUI
- Alt-` to instantly cycle windows of same app (no GUI, like macOS)
- Alt-Esc after Alt-Tab to cancel switcher
- Alt-Esc after Alt-` to revert to initial window
- Alt-Arrows as alternative for choosing app (repeating Alt-Tab also does this)
- Alt-Enter as alternative for confirming switch (releasing Alt also does this)
- Alt-F4 quits cmdtab
- Hold Shift to reverse direction
- Wrap bump on key repeat (yum!)
- Delayed show for flicker-free quick switching (not same as flicker-free drawing)
- Easy autorun (through registry)
- Input capture (prevent keystrokes from bleeding through to other apps)
- Double-buffered, flicker-free drawing
- Single instance protection
- Dark mode
Experimental
- Ctrl+Alt+Tab to toggle between cmdtab and default Windows switcher (buggy!)
Known issues
- Alt key gets stuck sometimes. Temporary workaround is to press Alt Ctrl Shift to release stuck Alt key
- Right-most icons sometimes not drawn correctly (white rectangle)
- Wrong icon sometimes: It's no joke trying to get nice icons of running applications
- Wrong title sometimes: It's surprisingly hard to just get the name of a running application
- Wrong apps sometimes: It's surprisingly hard to filter windows correctly (so many weird, invisible windows you'd never know)
- Wrong order sometimes: It's fundamentally flawed to rely on Z-order from EnumWindows() as window activation order (TIL!). Need a refactor for correct behavior.
- Relying on "Alt key workaround" for window activation. Doesn't cause any issues (except maybe stuck Alt key sometimes?), but will refactor for elegance.
- Leaky drawing
Roadmap/WIP
- Fix known issues
- User-facing configuration
- Custom app blacklist
- Setting for how to handle minimized apps (yeah, some people actually use window minimization for workflow management, not just visual management)
- Alt-Delete to close window (like Windows 10 and up)
- Alt-W to close window (like macOS)
- Alt-Q to close all windows of application (like macOS)
- Alt-M to minimize
- Mouse click on app icon to switch
- Mouse click outside switcher to cancel switcher
- C runtime free code
- Artisanal Win32 APIs
Conclusion
Finally, a great macOS-style window switcher for Window. Enjoy! (And check back for updates...)