Skip to content

cmdtab v1.0

Compare
Choose a tag to compare
@stianhoiland stianhoiland released this 02 Feb 12:24
· 14 commits to main since this release
0861749

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...)