st 中的曝光顏色(簡單終端)
我想將st與日曬顏色一起使用
urxvt
(當然這是通過st 完成的.Xresources
,st
顏色是在標頭檔中定義的)。我試圖將顏色放在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.h
colorname內的前 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
指定終端的背景顏色。