Skip to content

SmartCollapse 1.1.0

Choose a tag to compare

@zalexdev zalexdev released this 31 Oct 15:18
· 2 commits to main since this release
feat: add SmartCollapse, a per-monitor Show desktop for the taskbar

Add the first version (1.1.0) of SmartCollapse. It is a native Win32 tray
app that makes the taskbar's Show desktop button act only on the monitor
it sits on.

- hook: a low-level mouse hook runs on its own high-priority thread. It
  swallows left clicks on a Show desktop button and posts the work to
  the main window. It also reports when the cursor enters or leaves a
  button, for the peek. Shift+click keeps the normal behavior, and a
  watchdog reinstalls the hook if Windows drops it.
- taskbar: finds the Show desktop button on each taskbar. Classic,
  StartAllBack and ExplorerPatcher taskbars are matched by window class;
  the Windows 11 taskbar goes through UI Automation. Also turns Windows'
  own all-monitor peek on or off.
- desktop: minimizes a monitor's app windows without activating them,
  then restores them with the same Z-order, maximized state and focus.
  Calls are async, so a hung app can't block the tool. Handles virtual
  desktops, skips windows it can't minimize (elevated apps), and keeps
  the collapsed state in HKCU across restarts.
- peek: per-monitor "Peek at desktop" through a click-through overlay
  with a live DWM thumbnail of the desktop.
- admin: optional elevated mode through UAC. Autostart moves from the
  Run key to a Task Scheduler logon task with highest privileges.
- main/log: tray menu, single instance, --toggle/--exit/--log options,
  and optional logging to %TEMP%.
- Resources: manifest (PerMonitorV2 DPI, Common Controls 6), version
  info, app and paused icons, plus tools/make-icons.ps1 to rebuild the
  icons.
- build.cmd finds MSVC with vswhere and builds a small static exe into
  build\.
- README with usage, compatibility and build notes, and an animated
  demo SVG. .gitignore is reduced to the build output.