当 xterm 指向同一个可执行文件时,为什么 xterm 的行为与 x-terminal-emulator 不同?

Rum*_*mca 9 xterm alternatives x-resources

lrwxrwxrwx 1 root root 19 Apr 14 14:36 /etc/alternatives/x-terminal-emulator -> /usr/bin/xterm

使用这两个调用运行它:

  • /usr/bin/xterm
  • /etc/alternatives/x-terminal-emulator

首先以黑色背景开始,其他以白色开始。有哪些可能的原因是配置不一样?如何调试它?

Gil*_*il' 7

X 资源名称由以句点分隔的组件列表组成。每个组件可以是实例名称或类名称。实例标识一个特定的组件(例如顶行的第三个按钮),而类标识一个组件的类型(例如主窗口中的所有按钮)。按照惯例,类名以大写字母开头,实例名以小写字母开头。请参阅有关创建 .Xresources 文件的疑问。或阅读X 文档以获取更多详细信息。

资源名称的第一个组成部分是应用程序。在这个级别,类名是应用程序作者选择的一些应用程序名称;对于 Xterm,这是XTerm(按照惯例,对于称为 X Foo 的应用程序,第二个字母也大写)。默认情况下,实例名称是用于启动应用程序的可执行文件的名称。传统的 X 应用程序支持命令行选项 -name-class覆盖这些默认值。

当您通过符号链接启动 Xterm 时,这会更改可执行文件的名称(重要的是您使用的名称,或者更准确地说是调用进程在参数0 中传递的名称)。因此,实例名称(用于资源查找以及其他不太明显的名称)发生了变化。如果您希望无论用于调用 Xterm 的名称如何都应用您的设置,请~/.Xresources通过类定义您的资源(在或您选择放置它们的任何文件中),例如

XTerm.VT100.background:        Black
Run Code Online (Sandbox Code Playgroud)

而不是通过实例 ( xterm.VT100.background)。