---
name: "X11::Protocol::Ext::SHAPE"
section: "3pm"
platform: "linux"
package: "perl-x11-protocol"
version: "0.56-18"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/X11::Protocol::Ext::SHAPE"
---

# X11::Protocol::Ext::SHAPE(3pm)

Perl module for the X11 Protocol Nonrectangular Window Shape Extension

## NAME

X11::Protocol::Ext::SHAPE - Perl module for the X11 Protocol Nonrectangular Window Shape Extension

## SYNOPSIS

```
  use X11::Protocol;
  $x = X11::Protocol->new($ENV{'DISPLAY'});
  $x->init_extension('SHAPE') or die;
```

## DESCRIPTION

This module is used by the X11::Protocol module to participate in the shaped window extension to the X protocol, allowing windows to be of any shape, not just rectangles.

## SYMBOLIC CONSTANTS

This extension adds the constant types 'ShapeKind' and 'ShapeOp', with values as defined in the standard.

## EVENTS

This extension adds the event type 'ShapeNotify', with values as specified in the standard. This event is selected using the **ShapeSelectInput()** request.

## REQUESTS

This extension adds several requests, called as shown below:

```
  $x->ShapeQueryVersion
  =>
  ($major, $minor)
  $x->ShapeRectangles($dest, $destKind, $op, $xOff, $yOff,
                      $ordering, @rectangles)
  $x->ShapeMask($dest, $destKind, $op, $xOff, $yOff, $source)
  $x->ShapeCombine($dest, $destKind, $op, $xOff, $yOff, $source,
                   $sourceKind)
  $x->ShapeOffset($dest, $destKind, $xOff, $yOff)
  $x->ShapeQueryExtents($dest)
  =>
  ($boundingShaped, $clipShaped,
   ($xBoundingShape, $yBoundingShape,
    $widthBoundingShape, $heightBoundingShape)
   ($xClipShape, $yClipShape, $widthClipShape, $heightClipShape))
  $x->ShapeSelectInput($window, $enable)
  $x->ShapeInputSelected($window)
  =>
  $enable
  $x->ShapeGetRectangles($window, $kind)
  =>
  ($ordering, [$x, $y, $width, $height], ...)
```

## AUTHOR

Stephen McCamant \<SMCCAM@cpan.org\>.

## SEE ALSO

[**perl**(1)](/perl/1.md),  X11::Protocol, *Nonrectangular Window Shape Extension (X Consortium Standard)*.
