Date: Fri, 11 Feb 2022 15:30:32 +0200 From: Yuri Kanivetsky <yuri.kanivetsky@...il.com> To: musl@...ts.openwall.com Subject: What determines the TERM variable value? Hi, I was told recently that I can set TERM to any value inside a docker container, which is, sort of, at odds with my understanding. And my understanding is as follows. When a program creates a pseudoterminal (a pty master/slave pair), it sort of becomes a terminal emulator. I guess, it can decide not to process any escape sequences in which case the pair is probably not much different from an ordinary pipe. And basically what sequences it decides to process determines the TERM variable value. I can separate such programs into 2 categories: * Terminal emulators (xterm, urxvt, ...). They receive input, process escape sequences, and draw the result in a window. They can invent their own language (escape sequences), but it's probably best to have some terminal as a base. * The rest (docker, ssh, tmux, screen, ...). They receive input, translate escape sequences to the language of the process up the chain (by using the TERM variable and the terminfo database), and pass the result to stdout (text, optionally with translated escape sequences). So, generally you have a chain of processes connected via pseudoterminals (a pty master/slave pairs). E.g. xterm <-> ssh <-> tmux <-> docker. Also, you can't set TERM to an arbitrary value. Each program that creates a pseudoterminal supports a fixed set of values. E.g. the tmux documentation says: > For tmux to work correctly, this must be set to screen, tmux or a derivative of them. https://man.archlinux.org/man/community/tmux/tmux.1.en Is my understanding correct? Also, I have a pretty vague understanding of what the TERM variable affects. Can you give some examples? Or categorize things in some way? Is it only about escape sequences? Regards, Yuri
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.