Outcome

Give a PME item a repeatable action that moves one boundary of the active Blender area:

bpy.ops.pme.area_move(
    "INVOKE_DEFAULT",
    area="CURRENT",
    edge="TOP",
    delta=300,
    move_cursor=False,
)

This is a relative resize: it moves the selected edge by delta pixels. It does not set an absolute width or height.

Steps

  1. Add a Command item to a PME menu.

  2. Start with a modest movement so the result is easy to reverse:

    bpy.ops.pme.area_move(
        "INVOKE_DEFAULT",
        area="CURRENT",
        edge="TOP",
        delta=100,
        move_cursor=False,
    )
  3. Invoke the item from the area you want to resize.

  4. Change edge to BOTTOM, LEFT, or RIGHT as needed.

  5. Adjust the magnitude of delta. If the boundary moves in the opposite direction from the one you want, reverse its sign.

To target a named area instead of the caller, use one of Blender’s area UI types:

bpy.ops.pme.area_move(
    "INVOKE_DEFAULT",
    area="VIEW_3D",
    edge="RIGHT",
    delta=-160,
    move_cursor=False,
)

PME also ships the underlying technique as a reusable example script:

execute_script(
    "scripts/examples/command_area_move.py",
    area=C.area,
    edge="TOP",
    delta=300,
    move_cursor=False,
)

Use the operator for a straightforward menu action. Use the bundled script when you want to build a longer, readable workflow around the resize.

Pitfalls

  • Keep "INVOKE_DEFAULT" in the operator call. The operator performs the resize through its invoke() path.
  • Resizing one area moves a shared boundary, so the neighboring area changes size too.
  • area="CURRENT" is the safest choice when a screen contains several areas of the same type. A named target selects one matching ui_type; it is not a unique area identifier.
  • Large deltas can make an area inconveniently small. Test with 100 or less before choosing a final preset.
  • The operation uses Blender’s screen-area movement and briefly warps the pointer to the selected boundary. With move_cursor=False, PME returns it to its prior position after the move.
  • This resizes an area inside the active Blender screen. Popup Area windows and Popup Dialogs use different sizing controls.
  • The archived reply contains an HTML-escaped one-liner. Use PME 2.1’s operator or bundled example to avoid its quoting problem.

PME 2.1 includes pme.area_move and the bundled command_area_move.py example. The resulting geometry still depends on the screen layout and its neighboring areas.

Sources