Releases: rloechner/stacker
Stacker 1.2.0
Stacker v1.2.0
Highlights
Fixes widget visibility when the attached browser loses focus, adds a polished first-run Accessibility onboarding flow in the admin window, and refreshes the Stacker settings UI.
What's Changed
Widget visibility and attachment
- Hide when unfocused: The window widget now hides when you switch apps, open Spotlight or Raycast, or otherwise move focus away from the stacked browser.
- Screenshot thumbnail occlusion: Dragging the macOS screenshot preview over the widget no longer leaves the widget drawn on top of it.
- Stuck drag state fixed: Click jitter on the widget no longer wedges the overlay in a state where it refuses to hide or reattach until moved again.
- Corner stability: Dragging the widget near window corners no longer flickers between horizontal and vertical rail placement.
- Context menus: Right-clicking the widget to open its menu no longer triggers the hide-on-focus logic and dismisses the menu.
Accessibility onboarding
- In-app onboarding: First launch without Accessibility permission shows a guided pane in the admin window instead of system alert popups.
- Silent registration: Stacker is added to the Accessibility list without the extra macOS permission dialog; System Settings opens directly to the toggle.
- Live status: The onboarding pane detects when permission is granted and dismisses automatically.
Admin UI polish
- Settings form: The settings pane uses a grouped macOS form layout (System Settings style).
- Browser icons: The sidebar and detail header show real browser app icons.
- Cleaner actions: Turn On/Off uses consistent controls; redundant actions were removed from per-browser rows.
Tests
- Expanded occlusion unit tests for screenshot thumbnails, screen-sized capture chrome, and edge cases.
Requirements
- macOS 15.0 or newer
- Accessibility permission (first launch)
- Supported browsers: Chrome, Brave, Safari, Edge, Firefox, Orion, DuckDuckGo Browser, Dia, BrowserOS, Helium, and Vivaldi
Installation
- Download
Stacker-1.2.0.dmgfrom the release assets - Open it and drag Stacker to Applications
- Launch Stacker — the admin window guides you through enabling Accessibility
- After updating from a previous build, quit Stacker (Command+Q) and toggle Accessibility off/on if permission looks enabled but stacks do not respond
Known Limitations
- Spaces fullscreen browser windows are still stack members, but are not used as active widget anchors.
- Accessibility permission must still be toggled in System Settings; Stacker cannot grant it from inside the app.
- BrowserOS support is still marked Untested in the compatibility matrix until it receives real-window validation.
- Stacker requires at least two normal open browser windows before it can create a stack.
- See compatibility-matrix.md for per-browser notes.
Stacker v1.1.6
Stacker v1.1.6
Highlights
Adds in-window floating switcher placement for maximized browser windows, so the widget remains usable when there is no visible edge room outside the active window.
What's Changed
- Maximized-window switcher: When a browser window is maximized with the green button, Stacker can now float the switcher inside the browser window instead of hiding it.
- Draggable in-window placement: The floating switcher can be dragged within the maximized browser window and stays clamped inside the window bounds.
- Layout options: The floating switcher supports horizontal and vertical fill-mode layouts from its context menu.
- Settings controls: Settings now include toggles for showing the switcher on maximized windows and expanding the switcher on hover.
- Menu bar status: The menu bar now surfaces when a stack is using floating placement.
- Coverage handling: Higher-window coverage detection now treats edge-docked and floating placement separately to avoid hiding the floating switcher unnecessarily.
- Attachment tests: Added tests for maximized-window detection and floating-origin clamping.
Requirements
- macOS 15.0 or newer
- Accessibility permission (first launch)
- Supported browsers: Chrome, Brave, Safari, Edge, Firefox, Orion, DuckDuckGo Browser, Dia, BrowserOS, Helium, and Vivaldi
Installation
- Download
Stacker-1.1.6.dmgfrom the release assets - Open it and drag Stacker to Applications
- Launch and grant Accessibility permission when prompted
- After updating from a previous build, quit Stacker (Command+Q) and toggle Accessibility off/on if permission looks enabled but stacks do not respond
Known Limitations
- Spaces fullscreen browser windows are still stack members, but are not used as active widget anchors.
- Floating placement applies to maximized non-fullscreen browser windows when edge docking has no room.
- BrowserOS support is still marked Untested in the compatibility matrix until it receives real-window validation.
- Stacker requires at least two normal open browser windows before it can create a stack.
- Wake-from-sleep recovery can still require toggling the affected stack off and back on.
- See compatibility-matrix.md for per-browser notes.
Stacker v1.1.5
Stacker v1.1.5
Highlights
Adds Helium Browser support and polishes the attached widget behavior around browser-window edges and app shutdown.
What's Changed
- Helium Browser support: Stacker now recognizes Helium by bundle identifier (
net.imput.helium) and app name (Helium,Helium Browser). - Smoother widget corner dragging: The attached widget now uses clamp-aware edge scoring and corner redraw handling so dragging around browser corners is less jumpy, especially near the top corners.
- Lower drag-time overhead: Widget dragging now caches the browser anchor at drag start instead of re-resolving Accessibility attachment state for every mouse movement.
- Cleaner quit behavior: Quitting Stacker now separates stacked browser windows like turning a stack off, instead of leaving them stacked.
- Cleaner first-run Accessibility flow: First launch now guides users through one prominent in-app Accessibility path instead of showing overlapping custom and macOS permission prompts.
- Runtime warning cleanup: Deferred several SwiftUI/AppKit state and layout updates to reduce publish-during-update and synchronous layout warnings.
Requirements
- macOS 15.0 or newer
- Accessibility permission (first launch)
- Supported browsers: Chrome, Brave, Safari, Edge, Firefox, Orion, DuckDuckGo Browser, Dia, BrowserOS, Helium, and Vivaldi
Installation
- Download
Stacker-1.1.5.dmgfrom the release assets - Open it and drag Stacker to Applications
- Launch and grant Accessibility permission when prompted
- After updating from a previous build, quit Stacker (Command+Q) and toggle Accessibility off/on if permission looks enabled but stacks do not respond
Known Limitations
- BrowserOS support is still marked Untested in the compatibility matrix until it receives real-window validation.
- Stacker requires at least two normal open browser windows before it can create a stack.
- Wake-from-sleep recovery can still require toggling the affected stack off and back on.
- See compatibility-matrix.md for per-browser notes.
Stacker v1.1.4
Stacker v1.1.4
Highlights
Adds BrowserOS as a supported browser.
What's Changed
- BrowserOS support: Stacker now recognizes BrowserOS by bundle identifier (
com.browseros.BrowserOS) and app name. - Docs: Supported-browser lists now include BrowserOS.
Requirements
- macOS 15.0 or newer
- Accessibility permission (first launch)
- Supported browsers: Chrome, Brave, Safari, Edge, Firefox, Orion, DuckDuckGo Browser, Dia, BrowserOS, and Vivaldi
Installation
- Download
Stacker-1.1.4.dmgfrom the release assets - Open it and drag Stacker to Applications
- Launch and grant Accessibility permission when prompted
- After updating from a previous build, quit Stacker (Command+Q) and toggle Accessibility off/on if permission looks enabled but stacks do not respond
Known Limitations
- BrowserOS support is new and should be validated with real BrowserOS windows before marking it Good in the compatibility matrix.
- Stacker requires at least two normal open browser windows before it can create a stack.
- See compatibility-matrix.md for per-browser notes.
Stacker v1.1.3
Stacker v1.1.3
Highlights
Jump directly to a stacked browser window with Control+1 through Control+9 — slot 1 is the first widget dot, slot 2 the second, and so on. Shortcuts only apply when a stacked browser is frontmost, so Command+1–9 tab switching is unchanged.
What's Changed
- Stack jump shortcuts: Control+1–9 focuses the matching window in the active stack (uses a CGEvent tap so the browser does not also receive the key).
- Settings: Toggle stack jump on/off and change the modifier keys (default: Control only) under Settings → Controls.
- Menu bar: Status section shows the current stack jump shortcut when enabled.
- Console cleanup: Deferred SwiftUI state updates and safer overlay layout to reduce debug-console warnings during normal use.
Requirements
- macOS 15.0 or newer
- Accessibility permission (first launch)
- Supported browsers: Chrome, Brave, Safari, Edge, Firefox, Orion, DuckDuckGo Browser, Dia, and Vivaldi
Installation
- Download
Stacker-1.1.3.dmgfrom the release assets - Open it and drag Stacker to Applications
- Launch and grant Accessibility permission when prompted
- After updating from a previous build, quit Stacker (Command+Q) and toggle Accessibility off/on if permission looks enabled but stacks do not respond
Usage
- Control+1–9 — jump to a specific stacked window
- Command+` — cycle stacked windows (macOS native)
- Widget dots — click to switch
Turn stack jump off or change modifiers in Stacker → Settings → Controls.
Known Limitations
- Stack jump requires Accessibility permission (same as stacking).
- If a browser extension binds Control+digits, change the modifier in Settings or disable stack jump.
- See compatibility-matrix.md for per-browser notes.
Stacker v1.1.2
What's new in v1.1.2
- Vivaldi browser support — Stacker now detects and stacks windows in Vivaldi.
Includes Dia support and all v1.1 improvements.
Install / upgrade
- Download
Stacker-1.1.2.dmg - Drag Stacker into Applications
- Quit Stacker (Command+Q), reopen from Applications
Stacker v1.1.1
What's new in v1.1.1
- Dia browser support — Stacker now detects and stacks windows in Dia.
Includes all v1.1 improvements (add-back widget, right-click stack dots, overlay recovery, post-update Accessibility guidance).
Install / upgrade
- Download
Stacker-1.1.1.dmg - Drag Stacker into Applications
- Quit Stacker (Command+Q), reopen from Applications
Stacker v1.1
What's new
- Add-back widget — Cleaner circular “add to stack” control with improved placement and visibility (hides when the browser isn’t frontmost or the anchor window is covered).
- Right-click stack dots — Context menu on widget dots to focus, minimize/restore, or remove a window from the stack, while still allowing drag-to-move the widget and drag-to-reorder windows.
- Stronger overlay recovery — Better behavior after sleep, display changes, and monitor moves; active stacks refresh their addable-window list in the background.
- Post-update Accessibility help — Re-checks permission when you return to the app, warns if not launched from Applications, and shows guidance after updates if macOS still has a stale permission entry.
Install / upgrade
- Download
Stacker-1.1.dmg - Drag Stacker into Applications (replace the existing app)
- Quit Stacker completely (Command+Q), then open from Applications
- If Accessibility was already enabled but Stacker doesn’t detect it: toggle Stacker off/on in System Settings → Privacy & Security → Accessibility
Requirements
- macOS 15.0+
- Accessibility permission (Automation if prompted)
- Supported browser with at least two open windows
Stacker 1.0
First public release of Stacker for macOS.
Stacker helps organize and manage browser windows from a small native macOS utility app.
Download
Download Stacker-1.0.dmg below, open it, and drag Stacker into your Applications folder.
First Run
Stacker requires Accessibility permission so it can inspect, focus, move, resize, and observe browser windows.
On first launch, macOS may ask for permission. If needed, open:
System Settings > Privacy & Security > Accessibility
Then enable Stacker.
Notes
- Signed with Developer ID
- Notarized by Apple
- Distributed as freeware and open source