如何使 ls --color 中的蓝色目录变亮?

如何使 ls --color 中的蓝色目录变亮?

我看到另一个人深蓝色...-Q 有同样的问题:

我没有两种蓝色(正常和明亮/粗体),而是只有一种非常难以阅读的所谓“粗体蓝色”。普通的蓝色更糟糕,几乎看不见。

我不想更改 LS_COLORS。我想要蓝色的目录,但要更亮的目录。我不想要它们是洋红色或绿色的。

在 dircolors 的输出中,我看到了数十个亮红色或洋红色的扩展名(tar、tgz、mp3)编码。像目录这样基本的东西会在午夜蓝色中完全消失!

它已经设置为亮:

`DIR 01;34 # directory`

或与dircolors -b

  LS_COLORS='...di=01;34...'

在 XTerm 中我可以在文件*VT100*color12: SkyBlue2中设置app-defaults/。但对于控制台呢?内核只给了我 16预定义的ANSI 颜色!

我是否必须重新编译内核才能更改控制台的这些 RGB 定义?这种海军蓝必须在某个地方进行编码!


/* 在第一个答案后添加 */

echo -en "\e]PCrrggbb"按照建议尝试了:这有效!这真的很特别——括号是相反的。手册页中的“应该是 OSC”...谢谢!

德克特答案中的链接也有setvtrgb第二种解决方案。数字沙拉,但没有转义码。

这两种方法效果一样吗?

答案1

人 4 控制台代码表示这ESC ] P nrrggbb是一个转义序列,用于设置颜色 n 的 RGB 值。

答案显示了一个小的 shell 脚本来更改所有颜色,因此对于颜色 12 ,类似于

echo -en "\e]PC7373C9" # blue

(当然,使用您想要的 RGB 值)应该可以。

(另请考虑查看应存在于 EDID 中的显示器的伽玛值或颜色特征,并确保驱动程序拾取它们。这通常是标准颜色在显示器上无法“工作”的原因。特定监视器)。

答案2

我承认我心里有这样的答案(从那kernel.org 参数列表:

  vt.default_blu= [VT]
                        Format: <blue0>,<blue1>,<blue2>,...,<blue15>
                        Change the default blue palette of the console.
                        This is a 16-member array composed of values
                        ranging from 0-255.

我从来没有尝试过这个。现在我想我从来没有真正理解过它!我确信它有效。但您不想重新启动等只是为了找到合适的调色板。

不管怎样,想法和格式类似于我调整 16 种控制台颜色的默认解决方案:

setvtrgb

来自包“kbd”(其中还包含 chvt、loadkeys、showkeys...)

setvtrgb跟踪颜色 1 到 16 和 RGB 从 0 到 255 也需要一些努力,但效果是立即且永久的 - 并且同时适用于所有虚拟终端 - “系统范围”

一些用户似乎很困惑。帮助说:

To seed a valid FILE:
   cat /sys/module/vt/parameters/default_{red,grn,blu} > FILE

这一衬里对这三个 sysfs 文件进行了大括号扩展。您粘贴它,编辑文件,然后加载它以查看新颜色的外观。 (复制一份,否则您必须重新启动才能恢复默认状态)。

我昨天在这个中展示了该文件LS_COLORS 导出

现在dirkt提出的解决方案:

echo -en "\e]PCrrggbb"

这是一个“特殊”linux(非CSI)转义序列。 “C”是十六进制的#12(粗体蓝色)。

而这个设定是每个终端-- 您可以在每个终端上使用不同的调色板!比我要求的还要多!


这不仅仅是幻影蓝色目录,还有 vim 中的所有内容都是蓝色的,一直到最后一行下的蓝色波浪号。

我还减少了正常(白色)和粗体白色之间的差异。手册页中充满了这两种内容,为了语法突出显示,我使用普通白色作为注释,使用粗体白色作为代码。现在我可以轻松地阅读灰色,并且白色不会伤害(和损害)我的眼睛。

相关内容