mailing list of musl libc
 help / color / mirror / code / Atom feed
* [musl] What determines the TERM variable value?
@ 2022-02-11 13:30 Yuri Kanivetsky
  2022-02-11 15:54 ` Rich Felker
  0 siblings, 1 reply; 8+ messages in thread
From: Yuri Kanivetsky @ 2022-02-11 13:30 UTC (permalink / raw)
  To: musl


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.

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?


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-02-17 20:37 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-11 13:30 [musl] What determines the TERM variable value? Yuri Kanivetsky
2022-02-11 15:54 ` Rich Felker
2022-02-12  9:34   ` Yuri Kanivetsky
2022-02-12 10:33     ` Markus Wichmann
2022-02-12 15:05       ` Rich Felker
2022-02-13  8:54         ` Yuri Kanivetsky
2022-02-13  9:57           ` Markus Wichmann
2022-02-17 20:37             ` [musl] RE: [EXTERNAL] " Andy Caldwell

Code repositories for project(s) associated with this public inbox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).