Skip to content

Window Ops policy

Window Ops is xterm's permission category for controls spanning several sequence families. XTWINOPS is the narrower CSI … t protocol for window manipulation, geometry reports, and title stacks. OSC 52 clipboard access belongs to the permission category even though it is not XTWINOPS.

The Window Ops label connects the relevant reference pages. It identifies xterm policy membership; it does not mean a feature is disabled by default or that every emulator uses xterm's permission model.

Permission rules

With allowWindowOps: false, xterm denies the operations selected by disallowedWindowOps and permits the others, subject to their other requirements. With allowWindowOps: true, this permission check permits all operations in the category; the deny list does not override it.

The default deny list in xterm patch 411 is:

GetChecksum,GetIconTitle,GetSelection,GetWinTitle,SetSelection,SetXprop

Thus turning off Allow Window Ops restores the configured restrictions; it does not necessarily disable all window manipulation or size reporting. Names are case-insensitive. List entries support * and ? wildcards, with ~pattern re-allowing matching names, in list order. For example, *,~SetSelection allows only clipboard writes within this category while allowWindowOps is false.

Features in the category

Feature Sequence or reference Policy names
Restore, minimize, move, resize, raise, lower, refresh, maximize, fullscreen XTWINOPS, operations 1–10 RestoreWin, MinimizeWin, SetWinPosition, SetWinSizePixels, RaiseWin, LowerWin, RefreshWin, SetWinSizeChars, MaximizeWin, FullscreenWin
Window state, position, and geometry reports XTWINOPS, operations 11, 13–16, 18–19 Per-operation checks; named entries include GetWinState, GetWinPosition, GetWinSizePixels, GetWinSizeChars, GetScreenSizeChars
Read icon label or title Title reports, operations 20–21 GetIconTitle, GetWinTitle
Save and restore titles Title stack, operations 22–23 PushTitle, PopTitle
Change line count DECSLPP (CSI Ps t, Ps ≥ 24), DECSNLS (CSI Ps * \|) SetWinLines
Switch 80/132-column mode DECCOLM and mode 40 ColumnMode; also subject to c132
Read or write selections OSC 52 GetSelection, SetSelection
Set or delete X11 properties OSC 3 SetXprop
Read rectangular-area checksum DECRQCRA (CSI Pi ; Pg ; Pt ; Pl ; Pb ; Pr * y) GetChecksum
Select checksum algorithm extensions XTCHECKSUM (CSI Ps # y) SetChecksum
Select active status display or status-line type DECSASD (CSI Ps $ }), DECSSDT (CSI Ps $ ~) StatusLine

Some operations depend on xterm build options or the emulated VT level. The policy names and checks above follow the repository's patch 411 source.

Setting titles with OSC 0/1/2 uses Title Ops. Applying saved labels after a permitted pop also checks Title Ops; consuming a normal stack entry and applying its labels are separate steps. Font operations have allowFontOps; color and terminal-capability operations have their own policies. A control affecting a window does not automatically belong to Window Ops.

Sources

Separately tracked behavior

Complete Window Ops policy

Feature ID: policy-window-ops. Aggregate cross-family policy including geometry, columns, checksums, properties, status line and selections.

Set lines per page

Feature ID: csi-decslpp. Set lines per page with the corresponding cross-family Window Ops permission.

Set number of lines

Feature ID: csi-decsnls. Set number of lines with the corresponding cross-family Window Ops permission.

Request rectangular-area checksum

Feature ID: csi-decrqcra. Request rectangular-area checksum with the corresponding cross-family Window Ops permission.

Select checksum algorithm

Feature ID: csi-xtchecksum. Select checksum algorithm with the corresponding cross-family Window Ops permission.

Select active status display

Feature ID: csi-decsasd. Select active status display with the corresponding cross-family Window Ops permission.

Select status-line type

Feature ID: csi-decssdt. Select status-line type with the corresponding cross-family Window Ops permission.

Compatibility

Feature support by terminal. Imported claims have not been reverified; unknown is not unsupported.
Feature / stable ID Alacritty Apple Terminal ConPTY (conhost) Contour DomTerm foot Ghostty iTerm2 kitty Konsole mintty mlterm PuTTY Revenant RLogin st tmux rxvt-unicode VTE wayst WezTerm Windows Terminal xterm xterm.js
Complete Window Ops policy
policy-window-ops
Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
Set lines per page
csi-decslpp
Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
Set number of lines
csi-decsnls
Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
Request rectangular-area checksum
csi-decrqcra
Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
Select checksum algorithm
csi-xtchecksum
Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
Select active status display
csi-decsasd
Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
Select status-line type
csi-decssdt
Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown