Drag and drop
drag_dropUse this when the task calls for a real drag gesture between two UI element ids or coordinates. Prefer element ids from ui_find/ui_snapshot because their current bounds are resolved at execution time; use coordinates only when no semantic endpoints exist. On GNOME Wayland, real drag input requires the consent-backed Remote Desktop portal because XTEST/xdotool drag delivery is not reliable.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to_x | No | Destination X coordinate for a drag gesture. | |
| to_y | No | Destination Y coordinate for a drag gesture. | |
| to_id | No | Destination UI element id; use instead of to_x/to_y. | |
| button | No | Pointer button to use for click/down/up or drag gestures. | |
| device | Yes | ReMCP device id returned by list_devices. Required for every device operation. | |
| from_x | No | Source X coordinate for a drag gesture. | |
| from_y | No | Source Y coordinate for a drag gesture. | |
| backend | No | Input backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11. | |
| from_id | No | Source UI element id; use instead of from_x/from_y. | |
| hold_ms | No | How long to hold the pointer button before movement during a drag. | |
| duration_ms | No | Duration of the drag/movement gesture in milliseconds. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Drag and drop structured result for drag_drop. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload. | |
| text | Yes | Concise human-readable result of the tool call. |