Linux

如何使 ls –color 中的藍色目錄變亮?

  • October 7, 2019

我看到另一種深藍色…-Q 有同樣的問題:

而不是兩種藍色(正常和明亮/粗體),我只有一種非常難以閱讀的所謂“粗體藍色”。普通的藍色更糟糕,幾乎看不見。

我不想更改 LS_COLORS。我確實想要藍色的目錄,但要更亮。我不希望它們是洋紅色或綠色的。

在 dircolors 的輸出中,我看到幾十個副檔名(tar、tgz、mp3)編碼為亮紅色或洋紅色。像目錄這樣基本的東西在午夜的藍色中完全消失了!

它已經設置為明亮:

`DIR 01;34 # directory`

或與dircolors -b

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

在 XTerm 中我可以*VT100*color12: SkyBlue2app-defaults/文件中設置。但是對於控制台?核心只給了我 16種預定義的ANSI 顏色!

我是否必須重新編譯核心才能更改控制台的這些 RGB 定義?這種海軍藍必須在某處編碼!


/* 在第一個答案之後添加 */

我按照建議嘗試echo -en "\e]PCrrggbb"了:這行得通!這真的很特別——括號是相反的。手冊頁中的“應該是 OSC”…謝謝!

dirkt 的答案中的連結也setvtrgb作為第二種解決方案。數字沙拉,但沒有轉義碼。

這兩種方法是否相同?

我承認我有這樣的答案(來自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(粗藍色)的十六進制。

這個設置是針對每個tty的——您可以在每個 tty 上使用不同的調色板!比我要求的還要多!


這不僅僅是關於幻影藍色目錄,以及 vim 中的所有藍色內容,直到最後一行下方的藍色波浪號。

我還減少了正常(白色)和粗體白色之間的差異。手冊頁充滿了兩者,對於語法突出顯示,我使用普通白色作為註釋,使用粗體白色作為程式碼。現在我可以輕鬆閱讀灰色,而白色不會傷害(和傷害)我的眼睛。

man 4 console_codes表示這ESC ] P nrrggbb是一個轉義序列,用於設置顏色 n 的 RGB 值。

這個答案顯示了一個小的shell腳本來改變所有的顏色,所以對於顏色12,沿著線

echo -en "\e]PC7373C9" # blue

(當然,使用您想要的 RGB 值)應該可以工作。

(還可以考慮查看應該出現在 EDID 中的顯示器的伽馬值或顏色特徵,並確保它們被您的驅動程序拾取。這通常是標準顏色在顯示器上不起作用的原因特定的監視器)。

引用自:https://unix.stackexchange.com/questions/545525