Ship Lan Mouse on macOS as an accessory app (no Dock icon, no main
window on launch) with a status-bar item for show/quit. Closing the
window hides it instead of quitting so the menu bar stays the primary
surface.
- build-aux/macos-lsui-element.plist: LSUIElement=true plus
NSInputMonitoringUsageDescription and NSAppleEventsUsageDescription
(merged into Info.plist via cargo-bundle's osx_info_plist_exts).
- lan-mouse-gtk/src/macos_status_item.rs: NSStatusItem setup via raw
objc_msgSend FFI. Loads a bundled 22pt PNG as a template image so
it auto-tints for light/dark menu bars.
- scripts/makeicns.sh: emit Contents/Resources/menubar-template.png
from the existing SVG.
- scripts/copy-macos-dylib.sh: flatten cargo-bundle's preserved
target/ subdir under Resources so NSBundle pathForResource: finds
the template image.
- lan-mouse-gtk/src/lib.rs: register the new modules, set up a
Cmd+Q-wired quit action, configure bundle env vars (schemas,
XDG_DATA_DIRS, GTK_DATA_PREFIX) when running from inside the .app,
and filter the known upstream Gtk theme-parser warning spam.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The previous script generated a 1024x1024 icon from the SVG with no
squircle background and no transparent padding, which caused macOS
to render the Dock/Finder icon noticeably larger than first-party
apps and without the rounded-square shape users expect.
Rewrite the script to follow Apple's Big Sur+ icon template:
- 1024x1024 canvas
- 824x824 white squircle, centered (100px transparent padding outside)
- Artwork rendered at 560x560, centered inside the squircle
- Squircle corner radius ~22.5% of the squircle size
Use rsvg-convert to rasterize the SVG (ImageMagick crops this
particular SVG when rendering directly), then composite onto the
squircle background in two steps for reliability.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Include libadwaita and other dependencies in the app bundle on macOS
* Fix missing pipes
* Use recent bash for associative array support (declare -A)
* Use correct path for homebrew bash on Intel macOS
* Get homebrew path from the brew command
* Simplify copy-macos-dylib and convert to POSIX sh
Remove need for recent bash altogether
* Fix permissions nit
* Update macOS dylib copy script path in release workflow
* fix a few typos
* fix script invocation in pre-release.yml
---------
Co-authored-by: Apoorv Khandelwal <mail@apoorvkh.com>
Co-authored-by: Ferdinand Schober <ferdinandschober20@gmail.com>