有没有办法改变 Linux 上 TTY 控制台使用的颜色?

有没有办法改变 Linux 上 TTY 控制台使用的颜色?

#000000我所说的“改变颜色”是指将黑色从改为之类的操作#111111,而“TTY 控制台”是指从 X11 执行Ctrl+ Alt+时得到的内容,而不是像或 这样的F1终端仿真器。xtermurxvt

我正在使用 Arch Linux,但我认为它与提供 TTY 的程序有更多关系(agetty,我认为)。

答案1

设置项命令就是您要找的。

setterm -foreground black -background white

编辑

不,没有办法按照您的要求更改颜色名称。它们在 curses、terminfo 或终端本身的任何地方都没有以这种方式引用。您可以通过编辑内核源代码并重新编译来更改颜色索引的定义(我认为是 0-15)。

答案2

这是完全可能的,而且是我在 Arch 设置上所做的事情。

您可以将类似这样的内容放入 shell 脚本中并让其在登录时运行:

if [ "$TERM" = "linux" ]; then
    echo -en "\e]P0151515" # Black
    echo -en "\e]P1ac4142" # Red
    ...
    echo -en "\e]PEac4142" # Bright Cyan
    echo -en "\e]PFac4142" # Bright White
    clear # Clear artifacts
fi

到(基数 16) 是设置 16 种颜色 (8 个半亮,8 个亮) 所需的转义序列。之后,您可以输入所需的替换颜色,\e]P0例如。\e]PF151515

答案3

这是我所知道的最好的命令:

setterm -clear all -foreground green -bold -store

据我所知,您只能有 8 种不同的颜色。也许可以在基本 8 种颜色前面使用亮色,这样可以多一些颜色?

答案4

如何额外添加:当前有效答案关于

setterm -foreground black -background white

是有效且可以工作的,它有一个优点,它允许自定义你喜欢的任何颜色,缺点是它是暂时的,如果你运行或htopw3m <url>退出,那么就会tty返回到原始设置。

如果你使用(根据man setterm

setterm --inversescreen [on|off]

foreground它分别将颜色从白色/黑色反转background为黑色/白色。优点是它是永久性的,您可以运行或htop退出w3m <url>,然后tty保留反转设置。缺点是颜色不能自定义 - 这意味着始终使用白色和黑色

相关内容