apt - 配置颜色

apt - 配置颜色

在此输入图像描述

apt upgrade我最直接的渴望是/中的状态行,apt update它是黄色的——因为我使用浅色背景,所以几乎无法阅读......

我尝试了apt手册页,但/colou?r没有给出任何匹配项。

我尝试了 Google,但我发现 StackExchange 上有一些针对特定用例的回复,与我的不同,并且没有参考资源。

我还想要一个具体的答案来解决我上面的问题,但我最想要的是指向一些(非)官方文档的指针,该文档解释了颜色apt以及如何修改每个默认值。

提前发送

psapt作为命令行实用程序——类似 Debian 的发行版的打包基础设施是 Apt。

答案1

这是部分答案,感谢大卫·卡尼斯基斯APT 的,OFTC 的 #debian-apt。

apt update -o APT::Color::Yellow="$(printf '\e[36m')"

我认为那个颜色是青色。其他颜色请参见https://github.com/shiena/ansicolor/blob/master/README.md

要将其永久添加到 APT 的配置中,您可以执行以下操作(例如):

printf "APT::Color::Yellow \"\e[36m\";\n" >> /etc/apt/apt.conf

这会将如下内容(如果您正在使用 读取文件less)添加到/etc/apt/apt.conf

APT::Color::Yellow "ESC[36m";

感谢@sebasth 提出了这个printf咒语。

答案2

由于关于 apt 中的颜色似乎有重复的问题(包括将我带到这里的问题)并且没有太多相关文档,因此我认为进一步深入研究这一点可能会有所帮助。以下是 Faheem Mitha 的回答的扩展。

apt 源代码在 apt-private/private-output.cc 中包含突出显示和中性颜色以及多种颜色(红色、绿色等)的颜色定义。定义如下:

APT::Color::Yellow "[33m";

引号内的代码是 ANSI 转义序列,是许多终端 shell 解释的十六进制数字的组合,在本例中为前景色黄色。颜色代码中的第一个字符是十六进制 1B。没有等效的印刷版本。如果您查看代码,十六进制数字可能显示为插入符号 (^) 或模糊小框或 ESC 或根本不显示(如此处),具体取决于发送输出的内容和发送位置。

尽管定义了多种颜色,但 apt 目前(1.8.2)并未使用其中的大多数颜色。少数地方使用了高光和中性,但除了黄色之外没有其他颜色。它作为状态的输出颜色出现在 acqprogress.cc 的一行中。

因此,“黄色”可以被认为是状态行颜色的占位符。如果颜色不合适(例如白底黄字),请将“黄色”的代码更改为蓝色:

([34m)  

然后使用 Faheem Mitha 的答案中的 printf 方法将其附加到 /etc/apt/apt.conf 的末尾修复它:

printf "APT::Color::Yellow \"\e[34m\";\n" >> /etc/apt/apt.conf

或者,您可以使用十六进制编辑器(在我的例子中是 Oktata)直接更改 /etc/apt/apt.conf。请注意,apt.conf 可能不存在; apt 没有它也可以正常工作,但如果有它就会阅读它。

这就是为什么在运行 apt 之前更改 shell 中的颜色没有任何影响。 Apt 被硬编码以使用其“黄色”的定义。

最后,运行

apt-config dump

在终端中将输出 apt.conf 中的任何颜色代码(除其他外)。每个代码都会依次改变终端的颜色。如果 apt.conf 中的最后一行或唯一一行是“Yellow”,则终端将设置为分配给“Yellow”的任何内容。可以通过输入重置代码(容易称为中性)来避免这种情况

"[0m";  

在文件末尾“Yellow”的新定义之后。使用 printf 方法,那就是:

printf "APT::Color::Neutral \"\e[0m\";\n" >> /etc/apt/apt.conf

答案3

最简单的方法就是禁用所有颜色。

/etc/apt/apt.conf.d/80colors创建一个包含以下行的文件:Binary::apt::APT::Color "0";

例如,以 root 身份运行:

echo 'Binary::apt::APT::Color "0";' >/etc/apt/apt.conf.d/80colors

答案4

每个终端模拟器都应该有一些配色方案编辑器。

只需将不可接受的颜色设置为更好的颜色即可。

在此输入图像描述

相关内容