Colors

st 中的曝光顏色(簡單終端)

  • September 12, 2018

我想將st日曬顏色一起使用urxvt(當然這是通過st 完成的.Xresourcesst顏色是在標頭檔中定義的)。我試圖將顏色放在st的配置文件 (config.h) 中,但顏色在中“用於錯誤的事情” st(例如,dircolors 和中的顏色vim相對於 重新排列urxvt)。

我想我必須修改 使用的轉義序列st,但我沒有得到任何地方。誰能給我一個關於如何應用日曬顏色的提示st

對於那些想要使用 Solarized 顏色的st‘s範例的人,請參閱他的 Gist: https ://gist.github.com/gregf/5279175config.h

除了使用它之外,我之前沒有使用 st 的經驗,但是通過查看原始碼,我認為我已經找到了相關的部分。

我假設使用曝光顏色意味著您希望所有使用預設藍色的應用程序都使用曝光藍色

您將需要對 st.c 中的原始碼進行一些更改,而不僅僅是 config.h。

dc 是一個全域變數,它是 DC 結構的一個實例,每個變數dc.cols[i]對應一個要使用的顏色。

config.hcolorname內的前 16 種顏色通過XAllocNamedcolor函式內載入xloadcols(void),這些顏色插入到內的前 16 個位置(0 到 15)dc.col

這些對應於 ansi 轉義序列顏色,更多資訊請參見ANSI Escape Code::Colors

您需要在 中更改此功能xloadcols(void),特別是第一個 for 循環。

您可以使用而不是XAllocNamedColor使用XAllocColor(您可以在第二個 for 循環中看到一個範例),這允許您指定要在每個位置插入的每種顏色的 rgb(而不是從名稱中載入已知顏色) .

對於十六進制值,請參見solarized.vim特別是第 98 到 116 行,其中指定了十六進制值。

其餘部分dc.cols在 for 循環中分配,也可以在 中找到xloadcols(void),您可能不需要更改它,儘管這意味著某些應用程序可能使用這些顏色而不是您的曝光顏色。

至於預設背景和前景色,這些是在 config.h 第 40 行及以下設置的。

每個#define name index定義 dc.col

$$ index $$用於名稱,例如DefaultBg指定終端的背景顏色。

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