xterm 颜色太亮

n0p*_*0pe 7 colors terminal xterm

几天前我刚刚开始使用 dwm,我正在使用 xterm (uxterm) 作为终端模拟器。

但是,我注意到某些以彩色输出的应用程序(如 vi/vim、ls 和其他应用程序)使用明亮的颜色和(有时)粗体字体。我的终端的背景颜色是暗淡色,所以我希望颜色相匹配。

如何更改这些颜色,有没有办法使用 #xxxxxx 颜色?

Gil*_*il' 13

Xterm 是通过X resources配置的。这是您可以将其配置为黑底白字的方式,使用比默认值更浅的蓝色(显然,根据您的需要调整颜色):

XTerm.VT100.background:         Black
XTerm.VT100.color0:             Black
XTerm.VT100.color1:             Red
XTerm.VT100.color2:             Green
XTerm.VT100.color3:             Yellow
XTerm.VT100.color4:             CornflowerBlue
XTerm.VT100.color5:             Magenta
XTerm.VT100.color6:             Cyan
XTerm.VT100.color7:             White
XTerm.VT100.colorBD:            White
XTerm.VT100.colorBDMode:        true
XTerm.VT100.colorUL:            Yellow
XTerm.VT100.colorULMode:        true
XTerm.VT100.cursorColor:        Red
XTerm.VT100.foreground:         White
Run Code Online (Sandbox Code Playgroud)

您可以使用X颜色名称(你可以看到所有的颜色名称xcolors或一个文件称为rgb.txt这可能是下的某处/etc/X11,/usr/X11或/usr/share/X11或一些类似的位置取决于你的系统)或#RRGGBB。colorBD是用于粗体的颜色;与colorBDMode设置false(默认设置),将忽略此设置和大胆的文字显示在一个加粗字体。这同样适用于colorUL,colorULMode和下划线。您可以超越color8(最多color255或更少,具体取决于 xterm 版本和编译时配置)。color8通过color15粗体对应0-7;应用程序很少使用超过 16 的颜色,除非您已明确配置它们。

将这些设置放入一个名为~/.Xdefaults. 大多数系统会在您登录时自动加载此文件。如果您没有,请将此命令添加到您的 X 启动脚本中:

xrdb -merge ~/.Xdefaults
Run Code Online (Sandbox Code Playgroud)

要测试前景色 42 与背景色 17 的外观,请在该终端的 shell 中运行以下命令:

printf '\033[38;5;%dm\033[48;5;%dm%s\033[0m\n' 42 17 "Hello, world."
Run Code Online (Sandbox Code Playgroud)

如果您的 xterm 是在没有扩展颜色支持的情况下编译的,您将需要使用经典的控制序列:

printf '\033[3%dm\033[4%dm%s\033[0m\n' 4 1 "Hello, world."
Run Code Online (Sandbox Code Playgroud)

在这种情况下,前景色和背景色必须在 0-7 的范围内。如果你的xterm与16色的支持编译,替换[3和[4通过[9,并[10分别选择明亮的版本(颜色8-15)。