.Xresources 键命名和通配符匹配

.Xresources 键命名和通配符匹配

XTerm.vt100.faceName 或 xterm.vt100.faceName

在 .Xresources 中设置XTerm.vt100.faceNamekey 没有任何效果,

$ xrdb -q
*customization: -color
XTerm.vt100.faceName: Inconsolata:size=14:antialias=true

然而小写确实xterm.vt100.faceName有效

$ xrdb -q
*customization: -color
xterm.vt100.faceName: Inconsolata:size=14:antialias=true

我正在使用 debian netinstall 和 XTerm(312),所以问题可能是我使用的是不同版本的 XTerm,如下所述:配置文件中的“Xterm”或“xterm”

通配符不起作用

例如设置xterm.vt100.foreground有效但无效*.foreground

更新-appres

  • $ appres XTerm xterm | grep -i color0什么时候有*vt100.color0

    *vt100.color0:  #1d1f21
    *VT100*color0:  black
    
  • $ appres XTerm xterm | grep -i faceName当两者XTerm.vt100.faceName兼而有之xterm.vt100.faceName

    xterm.vt100.faceName:   Inconsolata:size=14:antialias=true
    XTerm.vt100.faceName:   Inconsolata:size=14:antialias=true
    

答案1

您可以检查您xterm使用的类别xprop。你应该看到类似的东西

$ xprop
...
WM_CLASS(STRING) = "xterm", "XTerm"

在您的情况下,更具体的设置(更少的通配符)似乎有效,不太具体的设置(通配符或类名而不是实例名称)则不起作用。这暗示有些地方xterm使用了声明,例如

xterm*faceName: blah

覆盖您不太具体的声明,但会被您更具体的声明覆盖。

我不完全确定在哪里xterm定义其Xrm资源,但所管理的根窗口属性xrdb只是这样的来源之一。因此,如果您因无法使用不太具体的声明而感到困扰,则需要在系统上找到其他声明,并将其删除。

编辑:在我的 Debian 系统上,特定于应用程序的资源似乎位于/etc/X11/app-defaults.

相关内容