JackyJacky
JackyGuideRestricted Zones (Zonas Restringidas)

Restricted Zones (Zonas Restringidas)

Define rectangular regions on your desktop where Jacky should never go, peek, sit, or target any window. Open the editor from the context menu (Restricted zones) and paint zones over a live screenshot of all your monitors.

Restricted zones editor with painted rectangular zones over a desktop screenshot
Restricted zones editor with painted rectangular zones over a desktop screenshot

How It Works

The zone editor overlays a scaled-down live screenshot of your entire virtual desktop. Each monitor is captured and stitched together so you can draw zones spanning across multiple screens.

  • Draw a zone — click and drag on the canvas to create a new rectangular zone. Zones smaller than 8×8 pixels are discarded.
  • Select a zone — click any existing zone to select it. The selected zone is highlighted with a different color.
  • Edit a zone — in the sidebar you can rename the zone label or toggle it on/off.
  • Delete a zone — select a zone and click Delete (Eliminar).
  • Save — click Save (Guardar) to persist zones to your configuration. Changes take effect immediately — no restart needed.

Zones are stored in config.json under exclusion_zones as a list of objects with label, left, top, right, bottom, and enabled fields, in Qt logical pixel coordinates.


Behavior When Zones Are Active

Once zones are saved, they affect every movement decision Jacky makes:

  • Random walks — any target that overlaps a zone is rejected and a new one is picked.
  • Peek and sit — window interactions that would place Jacky inside a zone are skipped.
  • Window targeting — screen interaction click targets inside zones are ignored.

Without Gravity (default)

With gravity off, Jacky can roam freely across all screen areas. When zones block a direct path, Jacky uses an L-shaped waypoint to route around them — walking horizontally past the zone first, then vertically to the target.

With Gravity

With gravity enabled, exclusion zones behave like solid walls and platforms:

  • Jacky can stand on top of a zone — it acts as a landing surface, just like a window title bar.
  • Jacky walks off the edges naturally, never phasing through a zone.
  • Zones block horizontal walking paths at their vertical level, preventing Jacky from passing through.
  • Vertical fly-around waypoints are disabled, since the pet cannot ascend through air.

Escape Mechanism

If Jacky ever finds himself inside a zone (e.g., because a zone was created around him or he was dragged into one), he automatically teleports to the nearest free position. This is handled every tick by check_and_escape_exclusion and is transparent to the user.


Config Reference

KeyTypeDefaultDescription
exclusion_zonesarray[]List of off-limits rectangles
exclusion_zones[].labelstring"#N"Human-readable zone name
exclusion_zones[].leftintLeft edge in Qt logical pixels
exclusion_zones[].topintTop edge in Qt logical pixels
exclusion_zones[].rightintRight edge in Qt logical pixels
exclusion_zones[].bottomintBottom edge in Qt logical pixels
exclusion_zones[].enabledbooltrueWhether this zone is active
Tip

Disable a zone instead of deleting it if you want to keep it for later. Disabled zones are shown in the editor as gray rectangles and have no effect on movement.