答案1
Linux 虚拟控制台基于 VT102 和 ECMA-48 终端控件。console_codes
和console_ioctl
手册页提供了更多信息。您可以使用以下命令查看当前使用的颜色:
$ cat /sys/module/vt/parameters/default_{red,grn,blu}
0,170,0,170,0,170,0,170,85,255,85,255,85,255,85,255 # .../default_red
0,0,170,85,0,0,170,170,85,85,255,255,85,85,255,255 # .../default_grn
0,0,0,0,170,170,170,170,85,85,85,85,255,255,255,255 # .../default_blu
这些给出了主要终端颜色的 RGB 值(8 个正常颜色,8 个明亮颜色),以逗号分隔的格式(来自setvtrgb
手册页):
# default_red: color0_R,color1_R,...,color15_R
# default_grn: color0_G,color1_G,...,color15_G
# default_blu: color0_B,color1_B,...,color15_B
+--------+--------+---------+
| Normal | Bright | Color |
+--------+--------+---------+
| 0 | 8 | Black |
| 1 | 9 | Red |
| 2 | 10 | Green |
| 3 | 11 | Yellow |
| 4 | 12 | Blue |
| 5 | 13 | Magenta |
| 6 | 14 | Cyan |
| 7 | 15 | White |
+---------------------------+
要更改它们,首先我们需要将这些值保存到文件中:
$ cat /sys/module/vt/parameters/default_{red,grn,blu} > ~/myconsolecolors
现在使用基本的文本编辑器调整颜色,并使用 加载更改。Ubuntu 会在以下setvtrgb
位置安装该工具:/sbin/setvtrgb
韋斯特包裹。
$ setvtrgb ~/myconsolecolors
一旦一切顺利,您需要在系统启动时运行它。我会将您的自定义颜色文件复制到以下方便的位置/etc/
:
$ sudo cp ~/myconsolecolors /etc/custom-vt-colors
然后创建一个systemd
单元来运行它:
$ sudo nano /etc/systemd/system/custom-vt-colors.service
[Unit]
Description=Load custom VT color palette
[Service]
Type=oneshot
ExecStart=/sbin/setvtrgb /etc/custom-vt-colors
[Install]
WantedBy=multi-user.target
最后,启用并启动服务:
$ sudo systemctl enable custom-vt-colors.service
$ sudo systemctl start custom-vt-colors.service
答案2
@quixotic 的回答非常透彻且正确,非常感谢 quixotic!
然而,我发现在 Ubuntu Mate 19.04 中,它被覆盖了。本质上,已经有一个通过 加载文件的服务setvtrgb
,并且加载得很晚。
/etc/vtrgb
我所做的就是按照从到 的链接/etc/console-setup/vtrgb
。编辑或替换/etc/console-setup/vtrgb
,保留相同的名称,一切都应该正常工作,正如 quixotic 所描述的那样。
(注意: setvtrgb.service
从 加载链接文件的/etc/vtrgb
位于/lib/systemd/system/
。)