Xresources / Xdefaults:句号还是星号?

Xresources / Xdefaults:句号还是星号?

我刚刚从xfce4-终端rxvt-unicode我读了很多.X资源.X默认值文件,将东西拼凑起来创建我自己的。我的谷歌搜索技巧给我留下了许多悬而未决的问题;其中之一是:

URxvt.font和之间有区别吗URxvt*font

我见过很多变体,例如,这个问题的答案在一行中使用星号,在另一行中使用句点。

URxvt*scrollBar:false
URxvt*scrollBar_right: false
URxvt.keysym.Shift-Up: command:\033]720;1\007
URxvt.keysym.Shift-Down: command:\033]721;1\007`

这是否意味着它不重要,或者它对某些环境很重要,而对其他环境则不重要?我希望了解这些差异(如果有的话)将有助于解决我无法工作的设置。

答案1

X 手册中对此进行了解释 ( man 7 X):

当应用程序查找资源的值时,它会在层次结构中指定一个完整的路径,其中包含类名称和实例名称。然而,资源值通常使用模式匹配构造仅给出部分指定的名称和类。 星号 ( *) 是松散绑定,用于表示任意数量的中间组件,包括没有。句点 ( .) 是紧密绑定,用于分隔紧邻的组件。

这意味着

URxvt*scrollBar:false

恰好是一样的

URxvt.scrollBar:false

URxvt因为组件之间没有中间组件scrollBar(如果我urxvt正确阅读了手册)。

然而,

URxvt.keysym.Shift-Up: command:\033]720;1\007

可能可以写成

URxvt*Shift-Up: command:\033]720;1\007

绕过该干预keysym组件。如果有任何其他资源,这也会Shift-Up为该类设置任何其他资源。URxvt

*Shift-Up: command:\033]720;1\007

会将该资源设置为全部X 班。

Asterisk 的工作方式类似于“通配符”,就像*shell 中的名称一样,但对于 X 资源名称而言。另外,我相信您不能在组件名称中间放置点,因此类比并不完全适用。

相关内容