Skip to content

Releases: zalexdev/SmartCollapse

SmartCollapse 1.3.0

Choose a tag to compare

@zalexdev zalexdev released this 31 Oct 18:09
feat(peek): give Windows' peek back when per-monitor peek stops

Windows' own "Peek at desktop" used to be switched off once on first
start, and the user had to turn it back on by hand. Now SmartCollapse
only borrows it while its own per-monitor peek is running:

- Switch Windows' peek off when hover peek is active, and back on when
  SmartCollapse is paused, hover peek is unticked, or the app exits.
- Restore it only if SmartCollapse switched it off (tracked with the
  WindowsPeekBorrowed setting). This replaces the one-time PeekHandled
  logic.
- If the user ticked Windows' peek again in the meantime, leave it on
  and turn hover peek off.
- On WM_ENDSESSION, restore the setting without broadcasting, because
  the process ends without leaving the message loop.
- On normal exit, restore it before the mutex is released, so an
  instance started with --replace borrows it only after that.
- Replace taskbar::TurnOffPeek with SetNativePeek(on, notify), which
  can switch the setting either way and optionally skip the
  WM_SETTINGCHANGE broadcast.
- Update the README to describe the new behavior.

SmartCollapse 1.2.0

Choose a tag to compare

@zalexdev zalexdev released this 31 Oct 18:00
  • Fixed mouse position readings

SmartCollapse 1.1.0

Choose a tag to compare

@zalexdev zalexdev released this 31 Oct 15:18
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.