RESIZE(1) X Window System RESIZE(1)

# [NAME](#NAME)

resize - set environment and terminal settings to current xterm window size

# [SYNOPSIS](#SYNOPSIS)

**resize** \[ **-v** | **-u** | **-c** ] \[ **-s** \[ *row col* ] ]

# [DESCRIPTION](#DESCRIPTION)

*Resize* prints a shell command for setting the appropriate environment variables to indicate the current size of *xterm* window from which the command is run.

*Resize* determines the command through several steps:

- first, it finds the name of the user's shell program. It uses the **SHELL** variable if set, otherwise it uses the user's data from /etc/passwd.
- then it decides whether to use Bourne shell syntax or C-Shell syntax. It uses a built-in table of known shells, which can be overridden by the **-u** and **-c** options.
- then *resize* asks the operating system for the terminal settings. This is the same information which can be manipulated using *stty*.
- then *resize* asks the terminal for its size in characters. Depending on whether the "**-s** option is given, *resize* uses a different escape sequence to ask for this information.
- at this point, *resize* attempts to update the terminal settings to reflect the terminal window's size in pixels:

<!--THE END-->

- if the **-s** option is used, *resize* then asks the terminal for its size in pixels.
- otherwise, *resize* asks the operating system for the information and updates that after ensuring that the window's dimensions are a multiple of the character height and width.
- in either case, the updated terminal settings are done using a different system call than used for *stty*.

<!--THE END-->

- then *resize* updates the terminal settings to reflect any altered values such as its size in rows or columns. This affects the values shown by *stty*.
- finally, *resize* generates shell commands for setting the environment variables, and writes that to the standard output.

# [OPTIONS](#OPTIONS)

The following options may be used with *resize*:

[**-c**](#c)

This option indicates that C shell commands should be generated even if the user's current shell does not appear to use C shell syntax.

[**-s \[*rows columns*\]**](#s)

This option indicates that Sun console escape sequences will be used instead of the VT100-style *xterm* escape codes. If *rows* and *columns* are given, *resize* will ask the *xterm* to resize itself using those values.

Both of the escape sequences used for this option (first to obtain the window size and second to modify it) are subject to *xterm*'s **allowWindowOps** resource setting. The window manager may also choose to disallow the change.

The VT100-style escape sequence used to determine the screen size always works for VT100-compatible terminals. VT100s have no corresponding way to modify the screensize.

[**-u**](#u)

This option indicates that Bourne shell commands should be generated even if the user's current shell does not appear to use Bourne shell syntax.

[**-v**](#v)

This causes *resize* to print a version number to the standard output, and then exit.

Note that the Sun console escape sequences are recognized by XFree86 *xterm* and by *dtterm*. The *resize* program may be installed as *sunsize*, which causes makes it assume the **-s** option.

The *rows* and *columns* arguments must appear last; though they are normally associated with the **-s** option, they are parsed separately.

# [ENVIRONMENT](#ENVIRONMENT)

[SHELL](#SHELL)

Unless overridden by the **-c** option, *resize* determines the user's current shell by

- first checking if **$SHELL** is set, and using that,
- otherwise *resize* looks in the password file (/etc/passwd).

Generally Bourne-shell variants (including *ksh*) do not modify **$SHELL**, so it is possible for *resize* to be confused if one runs *resize* from a Bourne shell spawned from a C shell.

After determining the user's shell, *resize* checks the shell's name against a table of known shell names. If it does not find the name in its table, *resize* will use C shell syntax for the generated commands to set environment variables.

[TERM](#TERM)

*Resize*'s generated shell command sets this to "xterm" if not already set.

[TERMCAP](#TERMCAP)

*Resize*'s generated shell command sets this variable on systems using termcap, e.g., when *resize* is linked with the *termcap* library rather than a *terminfo* library. The latter does not provide the complete text for a termcap entry.

[COLUMNS, LINES](#COLUMNS,)

*Resize*'s generated shell command sets these variables on systems using terminfo. Many applications (including the curses library) use those variables when set to override their screensize.

# [FILES](#FILES)

/etc/termcap

for the base termcap entry to modify.

~/.cshrc

user's alias for the command.

# [EXAMPLES](#EXAMPLES)

For *resize*'s output to take effect, *resize* must either be evaluated as part of the command line (usually done with a shell alias or function) or else redirected to a file which can then be read in. From the C shell (usually known as */bin/csh*), the following alias could be defined in the user's *.cshrc*:

```
% alias rs 'set noglob; eval `resize`'
```

After resizing the window, the user would type:

```
% rs
```

Users of versions of the Bourne shell (usually known as */bin/sh*) that don't have command functions will need to send the output to a temporary file and then read it back in with the “.” command:

```
$ resize > /tmp/out
$ . /tmp/out
```

# [AUTHORS](#AUTHORS)

Mark Vandevoorde (MIT-Athena), Edward Moy (Berkeley)  
Thomas Dickey (invisible-island.net).  
Copyright (c) 1984, 1985 by X Consortium  
See [*X*(1)](/man/os/xterm/X.1) for a complete copyright notice.

# [SEE ALSO](#SEE_ALSO)

[use\_env(3x)](/man/os/xterm/use_env.3x)  
[csh(1)](/man/os/xterm/csh.1), [stty(1)](/man/os/xterm/stty.1), [tset(1)](/man/os/xterm/tset.1)  
[xterm(1)](/man/os/xterm/xterm.1)

2026-10-11 Patch #412

---

Document: resize(1) from xterm 412-r1 (Chainguard OS)
Source: https://github.com/ThomasDickey/xterm-snapshots
