.Xresources 设置生效

.Xresources 设置生效

有没有办法检查哪些 .Xresources 设置有效此刻(不同于xrdb -query)?例如,我在一个似乎不尊重的主机上*reverseVideo: true,但我不知道这是否是因为我以错误的方式编写了它(甚至*florb: glorb在运行时不会引发错误xrdb -merge $HOME/.Xresources),因为设置不是支持,或者其他原因。

答案1

xrdb -query列出 X 服务器上显式加载的资源。

appres列出应用程序将接收的资源。这包括系统默认值(通常在/usr/X11R6/lib/X11/app-defaults或 之类的目录中找到/etc/X11/app-defaults)以及在服务器上使用 显式设置的资源xrdb。您可以限制特定的类和实例,例如appres XTerm foo查看哪些资源适用于使用 调用的 xterm xterm -name foo

X 服务器仅存储设置列表。它无法知道小部件是否真正会使用这些设置。无效的资源名称不会被注意到,因为您应该能够在层次结构中的较高级别设置资源,并且它们只会应用于与其相关且不会被覆盖的组件。

X 资源规范遵循相当复杂的优先规则。如果您的其中一项设置似乎不适用,那么罪魁祸首有时是优先考虑的系统默认设置,因为它更具体。查看输出以appres Class查看是否有系统设置某物.reverseVideo。如果您的应用程序是少数支持 Editres 协议的应用程序之一,您可以使用该editres程序检查其资源树。

答案2

资源加载到 X11 服务器中和由客户端加载是有区别的。例如,您可以在启动客户端后更改服务器的资源。

要获取当前服务器资源,可以使用“xrdb -query -all”。

为了获取当前的客户端资源,我不知道解决方案,但是编辑(1) 将允许您在兼容的客户端运行时将资源发送到该客户端。您可能会很幸运地使用使用 Xaw 和 Motif 时代工具包的应用程序,但对于 GTK 和 QT 应用程序则不太幸运(或没有)。一个很好的例子是“xterm”,您可以通过 editres 打开和关闭滚动条,而无需重新启动客户端。

答案3

没有xrdb -query -all做你想做的事?

我在 X 启动时从 .Xresources 加载了一些相当非正统的设置,它把它们返回给我:

 6:14AM 68 % xrdb -all -query
XTerm*VT100*translations:       #override \n <Key>F2: insert-selection(PRIMARY,CUT_BUFFER0)
XTerm*VT100.charClass:  33:48,35:48,37:48,42:48,45-47:48,64:48,95:48,126:48
XTerm*VT100.cutNewLine: false
XTerm*VT100.cutToBeginningOfLine:       false
XTerm*VT100.saveLines:  1000
XTerm*VT100.scrollBar:  true
scrollstyle:    plain

相关内容