Releases: MariuzM/mac-utility
Release list
v0.4.0
Upgrading: the Rekey startup daemon is renamed. Any older
mariuzm.rekeyor
dev.marius.rekeydaemon is booted out and removed automatically the next time you
install or update the startup daemon — or via Remove in the Rekey pane.Builds are signed with a local certificate when one is present, so Accessibility and Full
Disk Access grants survive a rebuild.make buildstill works with no setup anywhere — it
falls back to ad-hoc signing and warns that grants must be re-granted after each rebuild.
See Signing.
Added
- Dock Folders: clicking a checked folder in the Dock opens a custom browsable list instead of the
macOS stack, so items inside can be right-clicked (Open in Terminal / Ghostty / VS Code, Reveal
in Finder, Copy Path). Backed by a new background helper,macOS Utility Helper. - Menu bar folder browser for pinned folders.
- Test suite (
make test) covering path-safety rules, shell/AppleScript escaping, and saved-data
migration. make tccresets the app's and helper's Accessibility grants.
Changed
- App and helper are now signed with a stable local certificate instead of ad-hoc, so Accessibility
and Full Disk Access grants survive a rebuild. SetSIGN_IDto override; defaults to the local
macOS Utility Devidentity. - Version and build numbers are injected from the Makefile at build time rather than duplicated in
the plists. - The Rekey startup daemon is now
dev.marius.macosutility.rekey.plist. Oldermariuzm.rekeyand
dev.marius.rekeydaemons are booted out and removed automatically on install, or via the
"Remove" button in the Rekey pane. - Saved key mappings persist by HID usage rather than by display name, so renaming a key label no
longer orphans existing mappings. - Code layout: helper-only and app-only code moved out of the shared
FolderKitlibrary, which now
holds only genuinely shared configuration and storage.
Fixed
- Cancelling the administrator password prompt was reported as "everything failed" —
osascript
writes its cancellation to stderr, which was never captured. - The count of removed items was derived from shell exit codes that
rm -rfdoes not set on
failure; removal is now verified per path. - Paths containing apostrophes were corrupted in the failure list.
- A corrupt pinned-folders file caused the defaults to immediately overwrite it, losing the user's
folders. Missing and unreadable files are now distinguished. hidutiloutput larger than the pipe buffer could deadlock the app on the main thread.- Cancelling a scan no longer repopulates the list seconds later; cancelling a delete no longer
starts a new scan; a failed backup no longer opens Finder on an empty folder. - Spotlight privacy reads no longer stage a script in a writable temp directory before running it
as root. - Relative or empty paths could resolve against the working directory and bypass the protected-root
guard. - Backup and delete failures now report the underlying reason instead of only a count.
- An unreadable folder in the popover showed "Empty folder" rather than a permissions message.
- The Dock panel's trust-polling timer could run for the process lifetime after overrides were
removed; the event tap is now torn down on deallocation.
v0.3.0
What's new
- Rekey — new sidebar section for remapping keyboard keys (e.g. F-keys to brightness, volume, mute, playback) via macOS's native
hidutil. Remaps live in the kernel's HID layer, so nothing keeps running; an optional startup daemon re-applies them at every boot, even at the login screen. Merged from the standalone macos-rekey app. - Sidebar navigation — the top tab bar is now a left sidebar with a smoothly animated show/hide toggle (⌃⌘S).
- Makefile replaces
build.sh(make dev,make build,make r).
Breaking
- Bundle identifier changed to
mariuzm.macosutility— re-grant Full Disk Access (System Settings → Privacy & Security) after updating. - The Rekey startup daemon installs as
mariuzm.rekey.plist; if you had the olddev.marius.rekey.plistfrom the standalone app, remove it and re-enable the toggle.
Note: the bundle is ad-hoc signed — macOS will quarantine the download. Right-click → Open, or build from source with make build.
v0.2.0
Added
- Per-drive search for
node_modulesfolders, grouped into a separate category for each location (the folder that contains the projects), so you can review and clean them by where they live on each drive.
The attached app is ad-hoc signed. On first launch, right-click → Open to bypass Gatekeeper. See the CHANGELOG.
v0.1.0
Initial release.
- Parallel scan of all mounted volumes for removable files — caches, logs, trash, developer junk, temp files — grouped by drive → category → item with size, path, and a safety badge.
- Results split into User Files and System Files, with a checkbox per category and check-all / uncheck-all; Delete and Back Up act on the checked selection.
- Back up to
~/Desktop/macOS Utility Backup <timestamp>/, preserving original paths. - Delete via Trash or permanent delete; root-owned items via admin password, simulator runtimes via
simctl. - Console with live output, Cancel, and a watchdog.
- Spotlight Privacy tab.
The attached app is ad-hoc signed. On first launch, right-click → Open to bypass Gatekeeper. See the CHANGELOG.