feat: Improve Actions Ring latency, shape, positioning, and focus behavior - #649
Open
the-long-ride wants to merge 4 commits into
Open
feat: Improve Actions Ring latency, shape, positioning, and focus behavior#649the-long-ride wants to merge 4 commits into
the-long-ride wants to merge 4 commits into
Conversation
Greptile SummaryThe PR makes the Actions Ring selectable and replaces per-invocation overlay construction with a persistent, non-activating native window where supported.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| crates/openlogi-gui/src/platform/overlay.rs | Adds native warm-window support, DPI-aware placement, circular shaping, non-activating behavior, and foreground-relative stacking across supported desktop platforms. |
| crates/openlogi-gui/src/bin/openlogi-overlay.rs | Reworks the overlay lifecycle around a reusable RingView with session-safe installation, dismissal, timeout, and cold-window fallback paths. |
| crates/openlogi-core/src/binding/swipe.rs | Adds post-hold movement hysteresis so pre-gate drift cannot become a swipe after one small late sample. |
| crates/openlogi-core/src/binding/action.rs | Makes ShowActionsRing available through the normal action catalog while preserving recursive-ring rejection. |
| crates/openlogi-gui/Cargo.toml | Adds target-specific native-window dependencies required by the new Windows, macOS, and X11 overlay implementations. |
| Cargo.lock | Records the target-specific dependency additions without changing the versions associated with the reviewed advisory leads. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
Trigger[Actions Ring invocation] --> Backend{Warm window supported?}
Backend -->|Yes| Install[Install invocation into retained RingView]
Install --> Position[Position and shape native window]
Position --> Stack[Stack above active application without activation]
Stack --> Show[Show ring and register live session]
Backend -->|No / Wayland| Cold[Create temporary GPUI window]
Cold --> Show
Show --> End{Click, second trigger, click-away, or timeout}
End -->|Warm| Hide[Clear session and hide native window]
End -->|Cold| Remove[Remove temporary window]
Reviews (5): Last reviewed commit: "fix failed tests" | Re-trigger Greptile
Contributor
Author
|
Hi @AprilNEA and @davidbudnick ,
|
I want OpenLogi also help MX Master 2/3 user also can use action rings. I also want to make the action rings UX/UI better but trade off is RAM 50MB RAM usage for keep overlay running in background
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
the-long-ride
force-pushed
the
feat/actions-ring-picker
branch
from
August 17, 2026 03:28
8702660 to
e679190
Compare
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
Hi, I want
OpenLogialso help MX Master 2/3 user like me also can use action rings.Improve the Actions Ring overlay so it behaves like a lightweight native gesture overlay instead of a normal application window.
This keeps the existing Actions Ring interaction semantics while reducing startup latency, fixing DPI/positioning issues, tightening the overlay to the visible ring, and ensuring it appears above the application currently being used without stealing focus.
Changes
ShowActionsRingas a selectable system action.WM_DPICHANGEDbehavior when moving the persistent overlay between monitors.to avoid visible jumps or rectangular flashes.
Now it will be like this:

Platform behavior
Windows
HWND_TOPMOST.macOS
Linux / X11
_NET_ACTIVE_WINDOWand stack the ring directly above the active application's root-level window.Linux / Wayland
the same relative Z-order controls as Windows, macOS, or X11.
Why
The previous overlay behavior had several issues:
WM_DPICHANGEDhandlingThe updated implementation keeps the overlay warm, sizes and positions it using its actual native bounds, and only elevates it as much as needed to appear above the application the user is currently working in.
Focus behavior
Opening or clicking the Actions Ring must not move keyboard focus away from the application that was active before the ring appeared.
For example:
Related issues: