Tell the user when Accessibility is missing
Without it the Shift-Shift gestures fail silently, so hiding the panel left no way to bring it back and the app looked broken. The app now says so on launch and points at Cmd+Shift+Space, which needs no permission, and --diag reports the permission state alongside the status item's placement so a lockout can be diagnosed instead of guessed at.
This commit is contained in:
@@ -13,7 +13,13 @@ clicking an item copies it back to the clipboard.
|
||||
`NSStatusItem Preferred Position Prompt`). Left click toggles the panel,
|
||||
right click shows the menu (accessibility state, launch at login, open data
|
||||
folder, quit). Contains the single-instance guard and `LoginItem`
|
||||
(`SMAppService`).
|
||||
(`SMAppService`). Also sets `NSApp.mainMenu` with Hide Panel (Cmd+W) and Quit
|
||||
(Cmd+Q) — an accessory app shows no menu bar, but the main menu still
|
||||
services key equivalents, which is the only way to quit from the keyboard
|
||||
while the panel has focus. `applicationShouldHandleReopen` shows the panel so
|
||||
launching an already-running app does something. Supports `--sync-check` and
|
||||
`--diag` (writes the status item's frame and permission state to
|
||||
`/tmp/prompt-diag.txt`, then exits).
|
||||
- `Sources/Prompt/Store.swift` — `@MainActor` `ObservableObject` singleton.
|
||||
Data model: `Section` → `[PromptItem]`, item content is
|
||||
`.text(String)` or `.image(String)` (filename). Persists to
|
||||
@@ -167,7 +173,10 @@ brew upgrade --cask prompt
|
||||
the main thread (the hotkey handler already dispatches to a global queue).
|
||||
- The double-Shift tap needs Accessibility; without it the event tap silently
|
||||
fails and only the Carbon fallbacks work. The panel banner and the status
|
||||
menu both surface the permission state.
|
||||
menu both surface the permission state, and `AppDelegate` shows a launch
|
||||
alert when it is missing — otherwise a user who hides the panel is locked out
|
||||
(no hotkey, no Dock icon) and reports it as "the app won't come back". Check
|
||||
with `Prompt --diag` (`accessibility: false` is the tell).
|
||||
- `Info.plist` sets `NSAllowsArbitraryLoads` because the sync server URL is
|
||||
user-supplied and is often plain HTTP (LAN address, self-hosted box). ATS
|
||||
would otherwise block it with a confusing error.
|
||||
|
||||
Reference in New Issue
Block a user