Disabling VT100 emulation in Mac Terminal
I installed Gimp, Inkscape, and XQuartz on my Mac yesterday.
Today I get an error when I try to use resize
in the Terminal:
$ resize 50 120
resize: Can't set window size under VT100 emulation
I did not intentionally enable VT100 emulation (I'm not even sure exactly what that means). I suspect it is a side effect of installing Gimp, Inkscape, or XQuartz.
I use the basic/default Terminal profile with no customizations other than switching to /bin/zsh
as the default shell. I'm using Mac 10.14.5.
How can I turn off or disable VT100 emulation?
How can I turn off or disable VT100 emulation?
You can't. But you don't want to, either.
The DEC VT100 was an early video terminal for computer systems. It introduced a system of control codes which was widely copied by other terminals, and which has become a de facto standard. Virtually all computer terminal applications implement VT100 control sequences, and disabling them would make your terminal unusable.
That being said, this message is simply misleading. The resize
utility is a weird little component of the xterm terminal emulator, which is distributed with XQuartz. XTerm is not the same as the Mac Terminal application, and it will always print this message when run with two arguments, regardless of what terminal you're using. You can skip this message and force it to resize your terminal by adding the -s
flag, e.g.
/opt/X11/bin/resize -s 50 120
"s" stands for "Sun", as in Sun Microsystems, which had some terminal emulators which implemented extensions to the VT100 which included a sequence to resize the terminal window. (The VT100 didn't support any such sequence, as it was a hardware terminal and only supported two text resolutions: 80x24 and 132x24.)
Why this is necessary at all is… a good question, really. I suspect it comes down to both XTerm and the resize
utility it ships with being very old pieces of software.
I don't think I was in VT100 emulation mode in the first place. One of those applications added another program called resize
to my path. I was attempting to call a program called resize that I created based on this answer. But now that I have resize from X11, I can follow this answer.
/usr/X11/bin/resize -s width height
works without error in Terminal because (from man resize
)
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.