fix(linux): sync Hyprland cursor telemetry - #808
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (14)
📝 WalkthroughWalkthroughThe change adds shared Linux window-system detection, a Hyprland cursor provider, enriched Linux cursor state, and recording timeline alignment. Browser recording now starts at the actual ChangesHyprland cursor capture
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related PRs
Suggested reviewers: Sequence Diagram(s)sequenceDiagram
participant Renderer
participant MediaRecorder
participant RecordingIPC
participant HyprlandCursorProvider
Renderer->>MediaRecorder: Start recording
MediaRecorder-->>Renderer: Emit actual start timestamp
Renderer->>RecordingIPC: Set recording state with timeline timestamp
RecordingIPC->>HyprlandCursorProvider: Start cursor polling
HyprlandCursorProvider-->>RecordingIPC: Report overlay availability
RecordingIPC-->>Renderer: Return cursor overlay state
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Great work on the Hyprland position provider, tested on AMD Lucienne + Hyprland 0.56.2 (XDPH 1.4.1) and cursor position via the IPC socket works perfectly (@AlexSilva-dev here). One gap I hit while building on top of this: button events (clicks) aren't captured, the uiohook X11 path can't see them on native Wayland windows. I've opened #904 which adds evdev button capture with non-blocking reads on top of this provider's lifecycle, so clicks and position come from the same Hyprland-aware source. Details on the blocking-read libuv threadpool starvation that motivated |
Summary
Problem
On native Wayland under Hyprland, Electron and uiohook cannot reliably report the global cursor position outside Recordly windows. This leaves cursor-follow telemetry frozen or intermittent and prevents the editor overlay from tracking the recorded cursor.
Implementation
Verification
npx tsc --noEmitnpm run lint(existing repository warnings only)npm test(109 files, 1023 tests)npx vite build --config vite.config.tsRelated to #34 and #638.
Summary by CodeRabbit
New Features
Bug Fixes