![.Xresources 中的属性顺序](https://linux22.com/image/936844/.Xresources%20%E4%B8%AD%E7%9A%84%E5%B1%9E%E6%80%A7%E9%A1%BA%E5%BA%8F.png)
这让我抓狂...也许有人有想法。我找不到与此有关的东西。
我正在运行 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 属性,只有我的属性。
最终我现在很高兴。
也许这可能会对其他读者有所帮助。