在控制台/虚拟终端中更改颜色

Dan*_*our 8 command-line colors vim escape-characters console

有没有办法改变控制台/虚拟终端中的所有可用颜色?
通过控制台,我的意思是按 CTRL + ALT + F1 而不是 xterm 或 urxvt 之类的任何东西。所以,我想这意味着改变

我可以使用转义序列更改 8 种颜色,如下所示:

echo -en "\e]PY######"
Run Code Online (Sandbox Code Playgroud)

其中 Y 是颜色的数字 ID(0 到 7),###### 是十六进制颜色值。

我的最终目标是将日光化配色方案移植到控制台,因为无论我是在控制台还是 X 中,我都希望 vim 看起来都一样。

对此有何建议?

xterm 中的htop:xterm 中的
htop,曝光颜色

控制台中的 htop,应用 8 种颜色后:
控制台中的 htop,应用 8 种颜色后,我可以

IBr*_*IBr 6

TTY 帧缓冲区控制台无法在没有内核黑客的情况下拥有超过 8-16 种颜色,请参阅此引用:“尽管 Linux 帧缓冲区支持 256(或更多)颜色,但 Linux 控制台驱动程序不支持;因此,控制台应用程序仍然在 Linux 控制台上限制为 16 种颜色,帧缓冲区与否。”

所以你不能有超过 16 或 8 种颜色。有教程如何使用与您在 ~/.bashrc 中描述的相同的命令更改帧缓冲终端(又名 ctrl+alt+1)的颜色TTY 教程中的颜色

  • _colors_ _in_ _TTY_ _tutorial_ : http://web.archive.org/web/20150225020624/http://phraktured.net:80/linux-console-colors.html (2认同)

Ema*_*erg 5

在控制台中尝试这个 bash 函数。恰好,它在 X 终端中不起作用(我认为是因为选项卡)。特别检查最后使用的三个文件,即

/sys/module/vt/parameters/default_red
/sys/module/vt/parameters/default_grn
/sys/module/vt/parameters/default_blu

clr () {
    clear # GFX bug otherwise
    setterm -regtabs 4
    Color_names="bla red gre yel blu mag cya whi"
    Color_arr=($Color_names)

    tput setaf 4
    tput setab 7
    echo -n "            normal             "
    tput sgr0

    echo -n " "

    tput setaf 7
    tput setab 4   
    echo "            bright             "

    tput sgr0
    for cmd in sgr0 bold
    do
        tput $cmd
        for m in 0 1 2 3 4 5 6 7
        do
            tput setaf $m
            echo -n ${Color_arr[$m]}" "
        done
    done
    echo

    tput sgr0
    cat /sys/module/vt/parameters/default_red \
        /sys/module/vt/parameters/default_grn \
        /sys/module/vt/parameters/default_blu | sed s/,0/", "/g | \
                                                sed s/^0/" "/g | \
                                                tr "," "\t"
}
Run Code Online (Sandbox Code Playgroud)

编辑回应评论

例如,将绿色文件 ( sys/module/vt/parameters/default_grn) 中的第二个数字更改为170- 这将使第二种颜色(索引为 1)的绿色与红色一样多,并且没有蓝色(至少在我的情况下,因为我在 中具有相应的数字default_red 170,并0default_blu)中。

现在,输入tput setaf 1; echo hi. 在这里,您将前景色设置为索引为 1 的颜色(您更改的颜色),然后打印它。(请注意用冒号分隔命令的单行符,否则您的提示可能会重置tput之间的命令。)

如果它看起来与往常一样,请尝试echo -n '\033]R'然后tput再次该行。现在,两个“hi”都应该是黄色的。

如果你让它工作(或不工作),请告诉我。