st 中的曝光颜色(简单终端)

st 中的曝光颜色(简单终端)

我想用英石晒过的像我一样的颜色urxvt(当然这是通过 完成的.Xresourcesst颜色是在头文件中定义的)。我尝试将颜色放入 的st配置文件(config.h)中,但颜色“用于错误的事情” st(例如,dircolors 和颜色中的颜色vim相对于 重新排列urxvt)。

我想我必须修改 所使用的转义序列st,但我没有得到任何结果。谁能给我一些关于如何应用日光颜色的提示st

答案1

对于那些想要带有 Solarized 颜色的示例的st人,请参阅他的要点:config.hhttps://gist.github.com/gregf/5279175

答案2

除了使用 st 之外,我之前没有任何关于 st 的经验,但通过浏览源代码,我认为我已经找到了相关的部分。
我以为通过使用晒过的颜色你的意思是你想要所有使用的应用程序默认蓝色改为使用晒蓝

您需要对 st.c 中的源代码进行一些更改,而不仅仅是 config.h。
直流电是一个全球的变量是 DC 结构的实例,每个变量dc.cols[i]对应于要使用的颜色。

colorname中的前 16 个颜色通过函数内config.h加载,这些颜色被插入到 内的前 16 个位置(0 到 15)。XAllocNamedcolorxloadcols(void)dc.col

这些对应于 ansi 转义序列颜色,更多信息请参见ANSI 转义码::颜色

您需要在 中更改此功能xloadcols(void),特别是第一个 for 循环。您可以代替使用
(您可以在第二个 for 循环中看到这样的示例),这允许您指定要在每个位置插入的每种颜色的 rgb(而不是从名称加载已知的颜色) 。XAllocNamedColorXAllocColor

对于十六进制值,请参见日光照射.vim特别是第 98 行到第 116 行,其中指定了十六进制值。

其余部分dc.cols在 for 循环中分配,也在 中找到xloadcols(void),您可能不需要更改它,尽管这意味着某些应用程序可能使用这些颜色而不是您的日光颜色。

至于默认背景和前景色,这些是在 config.h 第 40 行及以下的行中设置的。
每个#define name index定义 dc.col[index] 用于名称,例如DefaultBg指定终端的背景颜色。

答案3

Solarized 现在可作为针对以下问题的官方补丁config.def.h

https://st.suckless.org/patches/solarized/

答案4

在 st Tip(以及 0.3 版本)中,无需编辑 st.c,只需在 config.h 中插入日光颜色即可。自从我问这个问题以来, st.c 和 config.h 似乎都发生了变化。

相关内容