如何使用ANSI转义序列设置棕色?

时间:2015-12-10 12:04:07

标签: c linux sequence ansi

我是否可以仅使用序列Esc[Value,Valuem来设置背景的棕色? (不仅是黑色,红色,绿色,黄色,蓝色,洋红色,青色,白色...我想要使用更多颜色)。

如何轻松实施?我想在我的启动代码中实现它,所以我没有机会使用标准库。

我应该使用哪些参数?

1 个答案:

答案 0 :(得分:1)

ANSI仅定义了8种颜色。没有棕色(虽然有些人将非亮“黄色”称为“棕色”,例如Yellow appears as brown in konsole)。

如果要在Linux 启动代码中使用不同的颜色,可以使用Linux控制台调色板转义序列来更改控制台调色板中的一个条目。请参阅console_codes(4)手册页:

   ESC ]     OSC      (Should be: Operating system command) ESC ] P
                      nrrggbb: set palette, with parameter given in 7
                      hexadecimal digits after the final P :-(.  Here n
                      is the color (0-15), and rrggbb indicates the
                      red/green/blue values (0-255).  ESC ] R: reset
                      palette

有些人使用此功能编写了程序(或脚本),例如setcolors - Change your Linux VT color palette (at boot time too!)

要更改终端仿真器中的颜色,例如,在启动并登录到桌面后,这些其他终端可能具有用于在其调色板中设置条目的控制序列。