mirror of
https://github.com/feschber/lan-mouse.git
synced 2026-05-15 22:01:59 -06:00
[PR #417] [MERGED] Macos menubar app #409
Labels
No labels
Xorg
documentation
enhancement
macos
pull-request
question
windows
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/lan-mouse#409
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/feschber/lan-mouse/pull/417
Author: @jondkinney
Created: 4/24/2026
Status: ✅ Merged
Merged: 4/29/2026
Merged by: @feschber
Base:
main← Head:macos-menubar-app📝 Commits (10+)
2122750bundle Adwaita symbolic icons in gresourcef095fb5makeicns.sh: produce Big Sur+ style macOS app icon546d133fix: create ~/.config/lan-mouse/ on first launch24062d7macos: run as LSUIElement menubar app with NSStatusItem36f27c2macos: per-pane TCC navigation and Sequoia-tolerant permission flowd3d0804fix: write a default config.toml on every Config::new()a45e00emacos: prompt to relaunch after live Accessibility grant06e0c96macos: drop the CapturePane / EmulationPane enumsa9cccd9macos: hide Reenable warning row once Accessibility is grantedd1e963emacos: fold relaunch prompt into the warning row instead of a toast📊 Changes
34 files changed (+1423 additions, -93 deletions)
View changed files
📝
Cargo.lock(+2 -0)📝
Cargo.toml(+2 -0)📝
README.md(+2 -1)➕
build-aux/macos-lsui-element.plist(+8 -0)📝
input-capture/src/error.rs(+4 -0)📝
input-capture/src/lib.rs(+13 -0)📝
input-capture/src/macos.rs(+254 -66)📝
input-emulation/Cargo.toml(+2 -0)📝
input-emulation/src/error.rs(+4 -0)📝
input-emulation/src/macos.rs(+38 -0)➕
lan-mouse-gtk/resources/icons/scalable/actions/edit-copy-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/actions/edit-delete-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/actions/emblem-ok-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/actions/list-add-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/actions/object-rotate-right-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/actions/object-select-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/actions/open-menu-symbolic.svg(+8 -0)➕
lan-mouse-gtk/resources/icons/scalable/actions/process-stop-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/devices/auth-fingerprint-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/devices/network-wired-symbolic.svg(+4 -0)...and 14 more files
📄 Description
This includes commits from #416 as well so we can likely close that other PR.
The app will now properly prompt for accessibility permissions, and monitor for them being granted. Once granted the app will prompt to be restarted for the new permissions to take effect. That auto-relaunch flow and manual launches open the GUI window automatically, but closing that window leaves the app running in the menubar. And if it's set to auto-launch, then the GUI doesn't show on a reboot, etc.
If you revoke the accessibility permissions, the app quits itself since not quitting would leave the input system in a broken state where the cursor still moves but clicking doesn't work, nor do keypresses. Once revoked, a re-launch will re-prompt for accessibility permissions.
Menubar
Dock
Granting permissions
Restart required
Restarted
Download this PR's build for macOS for testing
Lan Mouse.zip
Because this is an ad-hoc signed bundle, you will need to remove quarantine before it will open
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.