.Xresources 中的属性顺序

.Xresources 中的属性顺序

这让我抓狂...也许有人有想法。我找不到与此有关的东西。

我正在运行 ubuntu 20.04(工作室版本),并有一个 .Xresources 来为我心爱的 xterm 设置一些基于 nord 主题的颜色。看起来像这样:

XTerm*termName:    xterm-256color
#define nord0 #2E3440
...
*.color0: nord1
...

当我使用 xrdb 加载(尚未合并)它并启动 xterm 时,一切看起来都很好。

但是登录之后却不行...

有趣的是,资源都在这里:

$ xrdb -query
*.background:   nord0
*.color0:       nord1
...
*.cursorColor:  nord4
*.foreground:   nord4
*customization: -color
XTerm*termName: xterm-256color
Xft.dpi:        96
Xft.antialias:  1
Xft.hinting:    1
Xft.hintstyle:  hintslight
Xft.rgba:       rgb
Xcursor.size:   24
Xcursor.theme:  Yaru

可疑的是 termNAme 属性位于 colors 之后。不确定是否存在某种顺序?

当我再次加载它时,xterm 再次出现了想要的颜色。
,查询结果有点不同:

$ xrdb -query
XTerm*termName: xterm-256color
*.background:   #2E3440
*.foreground:   #D8DEE9
*.cursorColor:  #D8DEE9
*.color0:       #3B4252
*.color1:       #BF616A
...

现在 termNAme 属性位于开头,就像在 .Xresources 文件中一样,以及其他颜色属性。

那么为什么登录后会有所不同?我唯一的结论是,登录过程中有一些东西影响了顺序或做了其他事情。我还不能弄清楚这里到底发生了什么。我肯定我忽略了一些太接近的事情 ;)

有人知道这种行为吗?到目前为止非常感谢!

答案1

这实际上是因为

*customization: -color

此属性已添加(至少在 Ubuntu 20.04 中)/etc/X11/Xresources/x11-common

您可以通过登录后转储某个文件的所有属性来验证这一点:

xrdb -query -all > /tmp/xrdb.res

删除上面的行并通过发出以下命令*customization: -color使用load

xrdb -load /tmp/xrdb.res

但是,到目前为止我发现的唯一解决方法(xrdb -remove在登录时运行的自定义脚本中不起作用)是~/.Xresources像这样重复属性:

*color0: black
*VT100*color0: black

答案2

与此同时,当我偶然尝试使用 Wayland 作为显示管理器时,我找到了一个解决方案。使用这个,登录后 xterm 中的颜色是正确的。自定义属性(以及其他属性)不存在,所以我假设没有加载任何默认的 xrdb 属性,只有我的属性。

最终我现在很高兴。

也许这可能会对其他读者有所帮助。

相关内容