Repository navigation
Let the effect stay up as long as its user needs it - #20
Merged
Merged
Conversation
- Offer 0.1 to 5.0 seconds in tenths, and an option to keep showing until the pointer is used; the default of 1.2 seconds is unchanged - Store the choice as seconds in UserDefaults, with zero standing for waiting on the pointer, which no duration in range can collide with - End the wait when the cursor is moved and set down, decided by the pure state machine in BlipCore.DismissOnRest, or when a mouse button is pressed - Watch the click with a global monitor of its own rather than widening the double-tap event tap, which would change what that judges - Leave key presses out. A key says nothing about where the cursor is, so it ends the effect while its user is still looking; and a global monitor receives keys only for an app trusted for accessibility, which is more than a tool that draws a spotlight should hold - No new permission: the cursor position is polled and mouse events need none Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The effect ended after a fixed 1.2 seconds. That is right for most of the time, but it is a guess about how long someone needs to find their cursor, and it is the same guess on a laptop screen as on a projector.
The duration is now a setting: 0.1 to 5.0 seconds in tenths, with 1.2 still the default. Alongside it is an option to keep showing until the pointer is used, for people who would rather end it themselves than wait out a timer.
Waiting on the pointer ends in two ways. The cursor being moved and then set down is decided by
BlipCore.DismissOnRest, a pure state machine: movement under 12 points is the drift of a hand resting on a trackpad and does not count, and moving again restarts the wait, so a sweep that pauses partway does not take the effect away mid-sweep. A press of any mouse button ends it outright.Key presses deliberately do not end it. A key says nothing about where the cursor is, so it would end the effect while its user is still looking for it. A global monitor also receives key events only for an app trusted for accessibility, which is more than a tool that draws a spotlight should hold.
No new permission is required. The cursor position is polled through
NSEvent.mouseLocationand mouse events need none of their own. The click is watched with a global monitor of its own rather than by widening the double-tap event tap, which would change what that judges.Verified on hardware: the cursor coming to rest and a click both end the effect, and a key press does not.
🤖 Generated with Claude Code