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¶
- XTerm manual: disallowedWindowOps
- XTerm Control Sequences
- Repository source:
upstream/xterm-snapshots/charproc.c,tblWindowOpsand itsAllowWindowOpscall sites;ptyx.h,AllowWindowOps.
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¶
Choose terminals
| 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 policypolicy-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 pagecsi-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 linescsi-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 checksumcsi-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 algorithmcsi-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 displaycsi-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 typecsi-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 |