Skip to content

feat(input): add native X11 xdotool pointer clicks - #70

Open
UniqueDing wants to merge 2 commits into
agent-sh:mainfrom
UniqueDing:feat/x11-xdotool-pointer
Open

feat(input): add native X11 xdotool pointer clicks#70
UniqueDing wants to merge 2 commits into
agent-sh:mainfrom
UniqueDing:feat/x11-xdotool-pointer

Conversation

@UniqueDing

@UniqueDing UniqueDing commented Jul 31, 2026

Copy link
Copy Markdown

Summary

  • Prefer xdotool/XTEST for coordinate clicks in explicit native X11 sessions.
  • Preserve the existing pointer fallback paths if xdotool is unavailable or a command fails.
  • Report native-X11 xdotool availability in diagnostics/readiness.

Closes #64

@UniqueDing
UniqueDing requested a review from avifenesh as a code owner July 31, 2026 18:52
@gemini-code-assist

Copy link
Copy Markdown

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@avifenesh avifenesh left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@UniqueDing, thank you for the careful DDE/X11 report, the real dual-display validation, and for implementing this.

I also owe you an apology: while your branch was in flight, I merged #69 and #72 through the same input and diagnostics code without first reconciling #70. That created these conflicts and independently replaced much of your diagnostics/process work. That is on me, not on your contribution.

The core #64 fix is still missing from main: native-X11 coordinate clicks still do not use xdotool. I would like to keep this PR and merge that work after a focused rebase onto 4b4126c.

Please update it as follows:

  • Drop the behavioral src/diagnostics.rs diff; main now has the broader readiness, ordering, and override handling.
  • Place native-X11 xdotool clicking after the absolute-pointer attempt and before ydotool.
  • Require explicit XDG_SESSION_TYPE=x11, nonempty DISPLAY, and no active WAYLAND_DISPLAY; honor COMPUTER_USE_LINUX_FORCE_YDOTOOL_POINTER.
  • Use one supervised command: xdotool mousemove --sync -- X Y click --repeat N BUTTON.
  • Fall back only if xdotool cannot launch. If it starts and fails, return the error rather than risking duplicate clicks.
  • Resolve button support before moving, preserving correct fallback for extended buttons.
  • Add focused backend/failure tests plus the short README and changelog updates discussed in #64.

If you would rather not handle the conflict resolution caused by my overlapping changes, I can update your branch while preserving your authorship and credit. Your original diagnosis and native-X11 backend are still the valuable part of this fix. Thank you again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

X11/DDE MCP click falls back to ydotool; add xdotool pointer backend

2 participants