Releases: Swallow74/closeall
Release list
v1.10.2: bigger expand chevrons
v1.10.1: search covers apps, child processes, and orphans
- Search now matches app names, child process names, and orphan process names
- If a child process matches, its parent app is also shown
- If an orphan matches, it appears in results
- Placeholder updated to 'Search apps & processes'
v1.10.0: update notifications, more reliable process listing
- Update notifications: checks GitHub for new releases, shows blue download banner with link
- Merged PID scan: single pass for name, parent PID, and resident memory — more reliable, eliminates race conditions
- More processes visible: children shown even without memory data, orphan threshold lowered to 20 MB
- Sorted orphans: all orphan processes sorted by memory descending
- Tooltips fixed: all action buttons and header indicators now use native NSView.toolTip
v1.9.1: fix tooltips, per-app process tree
- Fix tooltips in NSPopover (replace .help()/.toolTip() with NSView.toolTip via .background())
- Per-app process tree: child processes grouped under parent app, expandable chevron
- Orphan processes (>100 MB, non-system) shown separately
- Hover terminate (SIGTERM) and force kill (SIGKILL) buttons on processes
- All tooltips now reliably work on buttons, headers, and indicators
v1.9.0: Per-app memory usage display
What's New
- Per-app resident memory: each app now shows its memory usage (MB/GB) in the app list
- Sorted by memory: apps are ordered by memory consumption descending (when memory monitoring is on)
- proc_pidinfo: switched to BSD proc_pidinfo for reliable per-process memory reading on arm64
Fixes
- Fixed resident_size reading on arm64 macOS via proc_pidinfo
v1.8.0: GPU monitoring, header redesign, custom GPU icon
What's new
- GPU monitoring: read GPU utilization via IOKit (AGXAccelerator), toggle in Settings
- Custom GPU icon: drawn programmatically as a graphics card silhouette, used in both status bar and header
- Header redesign: indicators use full horizontal space,
N appsmoved below search bar with Select All - Icon colors: header icons are white/neutral in normal state, orange on warning, red on critical
- Removed hand cursor: from header indicator hover
- Reliable tooltips: using NSView.toolTip instead of SwiftUI .help()
Settings
- GPU monitoring toggle in Monitors section (off by default)
- GPU indicator appears after CPU in header
Monitoring thresholds
| Level | GPU Usage |
|---|---|
| Normal | < 70% |
| Warning | 70\u201390% (orange) |
| Critical | > 90% (red) |
v1.7.1 — Manage Ignored Apps
v1.7.1
🐛 Fix
- Manage Ignored Apps: new UI in Settings to view and unignore apps, resolving the issue where hidden apps could not be restored.
Settings now includes a Manage ignored apps... button that opens a sheet listing all ignored apps with an Unignore button for each.
v1.7.0 — System Monitors + Auto-Free Memory
New Features
🔥 Thermal State Monitor
Tracks system thermal state (Nominal/Fair/Serious/Critical). Icon turns orange/red on warning, macOS notification on critical.
💾 Disk Space Monitor
Monitors free disk space. Warning at <10 GB, critical at <5 GB. Banner + notification.
🧠 CPU Hogs
Global CPU usage % + per-app CPU label in the app list. Warning >80%, critical >95%.
🤖 Auto-Free Memory
When memory is critically low, automatically quits all background apps (except Finder and frontmost) to free RAM.
UI Enhancements
- Status bar icon reflects the most critical system condition across all monitors
- Multiline tooltip shows all monitor states at a glance
- Stacked warning banners in popover for each active alert
- Compact colored indicators (dot + value) for each enabled monitor
v1.6.0
Fix: BetterDisplay virtual screen compatibility
CloseAll's icon was the only menu bar icon that didn't work when BetterDisplay had a virtual screen active. Clicking showed a brief highlight but no popover appeared.
Root cause: BetterDisplay virtual screens break the NSStatusBarButton target/action and gesture recognizer event chains. The button.action, btn.menu, and NSClickGestureRecognizer mechanisms all failed on virtual displays — only NSStatusItem.menu works reliably.
Fix: The popover is now triggered via statusItem.menu with an NSMenuDelegate. When menuWillOpen fires, the empty menu is cancelled and the NSPopover is shown instead. The menu is restored when the popover closes (.transient behavior handles auto-dismissal).
Also set LSUIElement directly in Info.plist instead of relying solely on runtime setActivationPolicy(.accessory).
v1.4.0
v1.4.0
- New: Memory Pressure Monitoring — monitors system memory via
host_statistics64 - Shows a warning banner in the popover when free memory drops below 20%
- Changes the menu bar icon to a warning triangle
- Sends a macOS notification on first threshold crossing
- Settings toggle to enable/disable monitoring (enabled by default)