Skip to main content

Move window

AI-Generated Content
This page was generated with the assistance of AI and may contain inaccuracies. It is intended as a placeholder for future human verification. If you spot issues ahead of its initial review, please report them on GitHub!
Experimental

Move Window is an XTerm window manipulation sequence that repositions the terminal window to a specified pixel coordinate on the screen.

Syntax​

CSI 3 ; x ; y t     Move window to pixel position (x, y)
Formal syntax
move_window = 0x1b, "[", "3", ";", Pn, ";", Pn, "t" ;
Pn          = digit, { digit } ;
digit       = "0" | "1" | "2" | "3" | "4"
          | "5" | "6" | "7" | "8" | "9" ;

Parameters​

ParameterDescriptionDefault
xHorizontal pixel position from the left edge of the screen0
yVertical pixel position from the top edge of the screen0

Description​

This sequence moves the terminal window so that its top-left corner is positioned at the pixel coordinates (x, y) relative to the top-left corner of the display. It is part of the XTerm CSI Ps ; Ps ; Ps t window manipulation family.

The coordinate system uses the screen's origin (0, 0) at the top-left corner, with x increasing to the right and y increasing downward. Coordinates are specified in pixels.

If the specified position would place the window partially or fully off-screen, the behavior depends on the window manager. Most window managers will clamp the position to keep at least part of the window visible.

The Window Position Report (CSI 13 t) can be used to query the current position of the window.

note

Some terminal emulators disable this sequence by default for security reasons, as a malicious application could move the terminal window off-screen. Check your terminal's configuration for options to enable or disable window manipulation sequences.

Examples​

# Move window to top-left corner of screen
printf '\e[3;0;0t'

# Move window to position (100, 200)
printf '\e[3;100;200t'

Specifications​

SpecificationSection
XTerm ctlseqs—

Terminal support​

TerminalSupportVersionNotes
Terminal Emulators
Alacritty✗NoRejected per escape_support.md:81-82
Bobcat✓0.9.0Handled via WhenWindowGeometryChange callback; requires WindowActions enabled in profile
contour✗NoNot implemented in WINDOWMANIP handler
foot✗NoCSI 3 t logs unimplemented warning
Ghostty✗NoCSI 3;x;y t not implemented
iTerm2✓v20260216-nightlyCSI 3;x;y t via XTERMCC_WINDOWPOS
Kitty✗NoCSI 3 t not supported
Konsole✗NoCSI 3 t not implemented
mintty✓YesCSI 3;x;y t implemented
mlterm✓rel-3_8_0Reports fixed position 0,0 (CSI 3 t)
PuTTY✓0.75CSI 3 t supported at terminal.c:4865-4875
Rio✗No
rxvt-unicode✓1.2
st✗NoNo CSI t window manipulation sequences implemented
terminology✗No
VT100✗No
VTE~YesParsed but implementation is no-op
WezTerm✗NoParsed but handled as unimplemented
Windows Terminal✗NoCSI 3;x;y t not in WindowManipulationType enum (DispatchTypes.hpp:584-594)
xterm✓xterm-93
xterm.js✓4.4.0CSI 3;x;y t. Requires windowOptions.setWinPosition enabled.
Multiplexers
cy✗NoExplicitly ignored
GNU Screen✗NoCSI 3;x;y t not implemented
tmux✗NoSequence parsed but ignored (case 3 in winops)
tuios✗NoCSI 3 t not handled
Zellij✗No

See also​