Skip to content

Title Ops policy

Title Ops is xterm's permission for changing the displayed window title or icon label. The allowTitleOps resource defaults to true; the Allow Title Ops entry in the Ctrl+right-click font menu changes it at runtime. The translation action is allow-title-ops(on/off/toggle). There is no separate disallowedTitleOps list.

This label describes xterm policy membership, independently of support in other emulators. See the feature label index.

Controls and overlapping permissions

Control Title Ops check Window Ops check
OSC 0: set window title and icon label Applies to both label changes None
OSC 1: set icon label Applies to the icon change None
OSC 2: set window title Applies to the title change None
XTWINOPS 23: pop/retrieve saved labels Applies when updating the displayed labels PopTitle permits the stack operation
XTWINOPS 22: push/save labels None PushTitle
XTWINOPS 20/21: report icon/window labels None GetIconTitle / GetWinTitle

If Window Ops permits a normal pop but Title Ops is disabled, xterm consumes the stack entry without changing the labels. A direct-slot read leaves the stack depth unchanged, as usual. Enabling Allow Window Ops does not override Title Ops. Disabling Title Ops does not itself disable reports or pushes.

In patch 411, allowSendEvents: true also makes the effective Title Ops permission false and makes the corresponding menu toggle insensitive. Setting startup labels with -T, -n, or shell resources is separate from these application control sequences.

The title encoding modes select how labels are decoded on input and encoded in reports. They are related configuration, rather than additional permissions. utf8Title and xterm's UTF-8 Titles menu also affect encoding and the EWMH _NET_WM_NAME and _NET_WM_ICON_NAME properties. Report authorization still comes from Window Ops.

The title-changing path also normalizes control characters, rejects labels longer than 1000 bytes before hex decoding, and supports sameName to avoid redundant property updates. These behaviors apply alongside permission checks; allowing a title operation does not guarantee that arbitrary bytes will be stored unchanged.

Sources

  • XTerm manual: allowTitleOps
  • XTerm Control Sequences
  • Repository patch-411 source: misc.c (ChangeGroup, ChangeTitle, ChangeIconName); charproc.c (OSC dispatch and window_ops); ptyx.h (AllowTitleOps, AllowXtermOps); menu.c (HandleAllowTitleOps, enable_allow_xxx_ops) under upstream/xterm-snapshots/.

Separately tracked behavior

Title Ops and synthetic events

Feature ID: policy-title-ops-send-events. allowSendEvents disables effective Title Ops and makes the toggle insensitive.

Title Ops translation action

Feature ID: action-allow-title-ops. allow-title-ops(on/off/toggle) shares live state and menu checkmark.

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
Title Ops and synthetic events
policy-title-ops-send-events
Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
Title Ops translation action
action-allow-title-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