On Tue, May 10, 2022 at 04:54:21PM +0200, Adam Borowski wrote: > On Tue, May 10, 2022 at 02:38:40PM +0200, Axel wrote: > > The apt command shows colors on monochrome terminals (even on a dumb > > terminal), > > please avoid this. Included is a patch which i believe will solve the > > problem > > and only allows output on terminals which actually have 'color' in them; the > > same logic as to when to color the default bash prompt. > > I have not tested this patch. > > > --- private-output.cc.orig 2022-05-10 14:18:27.611767218 +0200 > > +++ private-output.cc 2022-05-10 14:20:17.511703336 +0200 > > @@ -86,7 +86,8 @@ > > SigWinch(0); > > } > > > > - if(!isatty(1)) > > + char *term = getenv("TERM"); > > + if(!isatty(1) || strstr(term, "color") == NULL) > > { > > _config->Set("APT::Color", "false"); > > _config->Set("APT::Color::Highlight", ""); > > You mean monochrome terminals such as "xterm", "rxvt", "linux", ...? > > I haven't seen an actual monochrome terminal since the first half of the > 90's. But even those accepted color codes and gracefully ignored them. > To find a terminal that speaks a different language you'd need to go > another decade into the past. > > Thus, I guess that what you want is some global switch to disable color > in programs. But there's no common characteristic of a terminal that'd > allow autodetecting your wishes.
apt respects https://no-color.org/ NO_COLOR environment variable, and I believe this is the way to go for this. For completeness, my bashrc does the following, so it looks at tput setaf 1 (change color to red to see if there's color available). case "$TERM" in xterm-color|*-256color) color_prompt=yes;; esac # uncomment for a colored prompt, if the terminal has the capability; turned # off by default to not distract the user: the focus in a terminal window # should be on the output of commands, not on the prompt force_color_prompt=yes if [ -n "$force_color_prompt" ]; then if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then # We have color support; assume it's compliant with Ecma-48 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such # a case would tend to support setf rather than setaf.) color_prompt=yes else color_prompt= fi fi -- debian developer - deb.li/jak | jak-linux.org - free software dev ubuntu core developer i speak de, en