lazyBoy/docs/cua-schemas/0.23.2/schema-drag.txt

148 lines
4.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: drag
description:
Press-drag-release gesture from (from_x, from_y) to (to_x, to_y) in window-local screenshot pixels via XSendEvent (ButtonPress + MotionNotify × steps + ButtonRelease). duration_ms (default 500), steps (default 20). No focus steal.
input_schema:
{
"additionalProperties": false,
"properties": {
"button": {
"description": "Mouse button. Default \"left\".",
"enum": [
"left",
"right",
"middle"
],
"type": "string"
},
"cursor_id": {
"description": "Optional multi-cursor instance id. Default: 'default'.",
"type": "string"
},
"delivery_mode": {
"default": "background",
"description": "Input delivery mode. 'background' (default) never activates or raises the target window. On X11 it injects via XTEST / the XInput2 master pointer (no focus steal). On Wayland it goes through libei + xdg-desktop-portal, which injects to the compositor's input focus — Wayland's security model has no per-window background targeting, so a specific non-focused window cannot be aimed at; when no libei backend is available the tool returns a structured background_unavailable error. 'foreground' is the explicit escalation: activate the target (X11 _NET_ACTIVE_WINDOW; Wayland compositor activate), inject, then restore the prior active window — a brief focus swap unless the target was already active. Matches the macOS / Windows delivery_mode surface.",
"enum": [
"background",
"foreground"
],
"type": "string"
},
"duration_ms": {
"description": "Total drag duration. Default: 500.",
"maximum": 10000,
"minimum": 0,
"type": "integer"
},
"from_x": {
"type": "number"
},
"from_y": {
"type": "number"
},
"from_zoom": {
"type": "boolean"
},
"modifier": {
"description": "Modifier keys held during the action: cmd, shift, option/alt, ctrl.",
"items": {
"type": "string"
},
"type": "array"
},
"pid": {
"type": "integer"
},
"scope": {
"default": "window",
"enum": [
"window",
"desktop"
],
"type": "string"
},
"session": {
"description": "For multi-call work, prefer a short public session label and repeat it on every call that accepts it. Omit it to use the authenticated transport's implicit lifecycle session.",
"type": "string"
},
"steps": {
"description": "Intermediate MotionNotify events. Default: 20.",
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"target": {
"anyOf": [
{
"description": "Exact capture/input target selected independently for each action.\n\n`display_id=\"primary\"` is the portable desktop target in this release.\nPlatforms that cannot address another display reject it explicitly rather\nthan silently changing coordinate spaces.",
"oneOf": [
{
"additionalProperties": true,
"properties": {
"kind": {
"const": "window",
"type": "string"
},
"pid": {
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"window_id": {
"format": "uint64",
"minimum": 0,
"type": "integer"
}
},
"required": [
"kind",
"pid",
"window_id"
],
"type": "object"
},
{
"additionalProperties": true,
"properties": {
"display_id": {
"type": "string"
},
"kind": {
"const": "desktop",
"type": "string"
}
},
"required": [
"kind",
"display_id"
],
"type": "object"
}
]
},
{
"type": "null"
}
]
},
"to_x": {
"type": "number"
},
"to_y": {
"type": "number"
},
"window_id": {
"description": "Target window XID. Required.",
"type": "integer"
}
},
"required": [
"from_x",
"from_y",
"to_x",
"to_y"
],
"type": "object"
}