You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Let users configure panes to start automatically at login on macOS and Windows.
Context
A tray-resident window manager is only useful if it is running; every comparable tool (including Rectangle via LaunchOnLogin.swift and its RectangleLauncher helper) offers launch-at-login. panes currently has no way to persist across reboots.
Scope
macOS: register as a login item. Prefer the modern SMAppService API (macOS 13+); decide the fallback story given the current unbundled dev binary. This likely depends on the app-bundle work in Add packaging and CI #9.
Windows: add/remove a HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run value or a Startup-folder shortcut.
Add a "Launch at login" toggle to the tray menu reflecting current registration state.
Handle the moved/renamed binary case gracefully (stale registration should not error the app).
Implementation Notes
SMAppService.mainApp requires a proper bundle identifier and signed bundle to behave predictably; sequence this after Add packaging and CI #9 produces a real .app bundle.
Rectangle needed a separate launcher helper only for pre-13 macOS; panes can require macOS 13+ and skip the helper entirely.
Keep the registration APIs behind panes-platform traits so the tray toggle code stays shared.
Acceptance Criteria
Toggling "Launch at login" on and rebooting (or re-logging-in) starts panes on both platforms.
Toggling it off deregisters cleanly.
The tray checkbox reflects the real OS registration state, not just the stored preference.
A deleted or moved binary with a stale registration does not break startup.
Goal
Let users configure panes to start automatically at login on macOS and Windows.
Context
A tray-resident window manager is only useful if it is running; every comparable tool (including Rectangle via
LaunchOnLogin.swiftand itsRectangleLauncherhelper) offers launch-at-login. panes currently has no way to persist across reboots.Scope
SMAppServiceAPI (macOS 13+); decide the fallback story given the current unbundled dev binary. This likely depends on the app-bundle work in Add packaging and CI #9.HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Runvalue or a Startup-folder shortcut.Implementation Notes
SMAppService.mainApprequires a proper bundle identifier and signed bundle to behave predictably; sequence this after Add packaging and CI #9 produces a real .app bundle.panes-platformtraits so the tray toggle code stays shared.Acceptance Criteria
Validation
cargo fmt --all -- --checkcargo check --workspacecargo clippy --workspace --all-targets -- -D warningscargo test --workspace