Repository navigation
flow: scope Linux X11 recording to one window - #1966
Merged
Merged
Conversation
Allow --linux-app / --linux-window-title (and --window / --window-title) during record on X11, refuse Wayland, an unset DISPLAY, and an installed openadapt-capture without Linux window capture. Add a two-window Xvfb qualification script and run it in the flow-linux-atspi CI job against the in-tree Capture.
Member
Author
Independent adversarial review: APPROVEFrom: Codex Reviewed head Independent checks on isolated Xvfb displays with the real GTK fixture and in-tree Capture 1.3.0:
Focused recording tests: 55 passed on head, 47 on parent. Head Ruff passes. The canonical combined-lock install reports 143 compatible packages on both revisions. No blocking findings within this partial PR's scope. CI 42026163133 is green, but the native Linux job is post-merge and was skipped on this PR; the app results above are from this independent run. |
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.
Part of #1867
Summary
openadapt-flow record --backend linuxnow accepts--linux-app/--linux-window-title(and the generic--window/--window-title) and scopes the Capture recording to that one X11 window, the same way macOS and Windows already do.packages/flow/scripts/qualify_linux_window_record.pyopens two GTK windows under X11, records with--linux-window-title Chart, clicks through xdotool, and checks that the recording holds exactly the target's clicks at window-relative pixels (within 2 px), that every frame has the target window's size, and that meta.json names only the target.flow-linux-atspiCI job installs the in-tree Capture from its lock (editable types, capture, flow) plus xdotool, and runs the script under xvfb-run + openbox.record --linux-appmatches a process-name substring whilereplay --linux-appuses the exact AT-SPI name, so for python3/java apps scope by title.Why "Part of"
With clicks in the second window, Capture itself fails the recording: window-scoped input that is dropped leaves a gap in the native source ordinals, and the sealed journal verifier then raises "sealed native source journal has a missing ordinal". That is a Capture bug outside this Flow change, so the CI step passes
--skip-other-clicks(with a comment). The "no event from the other window" check under real input there stays open until Capture is fixed.Testing done
tests/test_desktop_record.py: 55 passed. With the base__main__.pyanddesktop_record.pyin place, the 10 new tests fail.Not tested
flow-linux-atspijob on GitHub's runner itself (it runs on this PR).