首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置文件中的"Xterm“或"xterm”

配置文件中的"Xterm“或"xterm”
EN

Unix & Linux用户
提问于 2015-07-17 12:57:56
回答 2查看 10.2K关注 0票数 8

在开始使用Arch之后,我切换到xterm和urxvt终端,并享受了它们的灵活性(尤指)。scaleHeight资源)。但是,我不明白为什么有时候XtermxtermXTerm (小写与大写xt)一起工作。

例如,我有一个在Ubuntu上工作的奇怪配置:

代码语言:javascript
复制
XTerm*faceName: terminus
XTerm*faceSize: 11
XTerm*saveLines: 16384
XTerm*loginShell: true
XTerm*charClass: 33:48,35:48,37:48,43:48,45-47:48,64:48,95:48,126:48
XTerm*termName: xterm-color
XTerm*eightBitInput: false
xterm*VT100.geometry: 100x80    ! <------ this line would not work with "Xterm" or "XTerm"
XTerm*scaleHeight: 1.3          ! <----- but all others work with "XTerm"

然而,我的拱形盒运行在"xterm“上很好。对于URxvt终端也是如此:我不能简单地将我的Arch .Xresources移植到Ubuntu14工作框,因为它的部分停止工作,运行后我得到了不同的设置:

代码语言:javascript
复制
xrdb -merge .Xresources

xterm上的X.org没有任何示例(搜索"xterm*“没有返回该页面上的任何内容)。我看到了XtermxtermXTerm的例子.让我感到困惑的是,上面的配置是有效的,因为它在语法上是关闭的。为什么是这种情况?它可能与X中的新资源或旧资源有关吗?谢谢!

在ubuntu上的X项是Xterm(297)。我目前还没有机会进入我的拱门盒,但这将是非常最新的。我不知道如何区分Xterm版本和Arch的repos,但也许是这样的:https://www.archlinux.org/packages/extra/i686/xterm/所以,如果这个链接是正确的,那么是的,我运行的是不同的Xterm版本。

我试过升级xterm,但它仍然是297。

代码语言:javascript
复制
apt-get update && apt-get install --only-upgrade xterm

我现在做不到,但我可能会尝试重新编译最新版本,看看是否存在问题。

按照下面ILMostro_7的建议,我尝试了XTerm.vt100.geometry,但它仍然不起作用。这是Ubuntu14上的Xterm (297)。因此,基本上,.*似乎只适用于小xt

appres XTerm xterm | grep geometry的结果感谢吉尔斯。我没有想到xrdb -merge到底做了什么,这导致了这场混乱。所以我猜其中一个优先于其他一切?

代码语言:javascript
复制
xterm.VT100.geometry:   100x100
xterm*VT100.geometry:   100x80
xterm*VT100*geometry:   50x50
xterm.vt100.geometry:   160x40
xterm*vt100.geometry:   100x20
xterm.geometry: 5x5
xterm*geometry: 100x20
XTerm.VT100.geometry:   100x100
XTerm*VT100.geometry:   50x50
XTerm*VT100*geometry:   20x10
XTerm.vt100.geometry:   100x5
XTerm*vt100.geometry:   40x40
XTerm*geometry: 50x50

事实上,xterm.vt100.geometry: 160x40似乎比其他的优先,因为我一直得到的实例。此外,我设法完全搞砸了Xterm (Ctrl+mouse点击)--它们显示为一条黄色的小行。哈哈

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2015-07-18 01:05:10

X11资源有一个名称,它由一系列由点分隔的组件组成,如xterm.vt100.geometry。第一个组件是应用程序的名称,第二个组件是应用程序中的小部件,最后一个组件是小部件的属性。小部件可以嵌套,因此可以有三个以上的组件,或者只有两个组件用于应用程序的属性。

X资源的规范可以应用于单个资源或匹配模式的一组资源。有两种方法可以使规范应用于多个资源。

  • 您可以对任何组件使用类名而不是实例名。按照惯例,实例名称以小写字母开头,而类名以大写字母开头。
    • 在应用程序级别,类名通常是为给定的应用程序固定的,通常是大写的应用程序名称,有时其他字母也是大写的,例如XTermXCalcGVNetHack、.使用X工具包的应用程序支持设置类名的选项-class,以及设置实例名称的-name (默认为可执行文件的基本名称)。例如,XTerm.vt100.geometry为任何XTerm类实例的vt100小部件设置geometry属性值;它适用于xterm -name foo,但不应用于xterm -class Foo
    • 在小部件级别,可以有多个具有相同类的小部件,例如,在同一个窗口中有多个按钮。Xterm有一个VT100类的小部件,名为vt100,它是覆盖整个窗口的终端模拟器部分。其他小部件包括mainMenufontMenuSimpleMenu类的vtMenu菜单。

  • 有通配符:?的意思是“任意小部件”,而*的意思是“任意小部件序列”。例如,xterm*background为Xterm窗口中的所有内容定义了一个背景。

您可以探索支持editres编辑协议的应用程序的资源树。很少有应用程序支持此协议,但Xterm就是其中之一。

一个给定的资源有可能被多个模式匹配。在这种情况下,适用优先规则。有关完整规则,请参见手册

在您的示例中,可能有另一个条目比xterm.vt100.geometry更适合xterm*VT100.geometry,而且该匹配正在覆盖您的设置。其他人没有其他的设置,所以不管你做什么都会赢。

票数 12
EN

Unix & Linux用户

发布于 2016-06-30 00:02:20

有些评论等等是不准确的。顺便说一下,X资源的描述在X(7)手册页中,在题为资源的部分中。这是最好的开始阅读的地方,在这里重复也没有什么意义。

以下是一些被忽略的要点:

  • 资源名称区分大小写:XTermXterm不相同,也不与xterm相同,等等。
  • 通常,X资源名称使用大写字母作为类名。
  • 当类名的第一个字母是X时,有一个惯例使第二个字母大写。所以我们得到了XTerm。其他例子包括XCalcXClockXConsoleXLoadXLogo
  • 另一方面,我们有Xedit (小写e),XfdXmagXmanXmessageXvidtune。所以公约不是一条规则。
  • X应用程序(如xterm)使用XtOpenApplicationXtAppInitialize初始化它们的应用程序-资源。这些调用采用实例和类名。
  • 按照惯例,实例名是程序的实际名称(其文件名)。如果您碰巧重命名程序(像偶尔发生的那样,例如xterm.real),则会更改程序的名称。这个程序不需要这样做,但它经常被完成。是xterm干的。
  • 通常类名是常量。它不在xterm中,因为它需要两个类中的一个:XTermUXTerm (3个主要大写字母)。后者用于uxterm脚本,简化了字体的指定方式。这个2000年年的日期,使它在X的历史的中途。快速检查X源代码树中使用XtAppInitialize的2000年早期/中期S的30个程序时,不会显示任何其他程序使用类名变量。
  • -class选项是特定于xterm的。实际上,dbedizzy接受可视类的-class选项。那可不一样。X Toolkit没有这种选择。选项中的X(7)手册页面中列出了X的常见选项。xterm手册在X工具包选项中更详细地介绍了这些内容。
  • editres,如其手册页面所示,适用于使用X的任何程序。在X源树中有36个程序使用提到的两个初始化调用中的一个或另一个,所以它并不是适用于“少数程序”的程序。
  • 另一方面,xterm是少数几个editres不太有用的地方之一。它有太多的资源设置。

应用程序默认文件是为xterm和其他应用程序安装的,通常以星号(*)开头指定它们的资源设置。这使得它们独立于实例名称。星号匹配小部件层次结构的任意多个级别,这通常是一个混乱的来源,例如xterm 为什么菜单很小?,其中可以为VT100小部件(Mis)应用于菜单的几何资源。在font资源中应用过于慷慨的匹配也存在类似的问题。两种方法的修正都是使用更特定的匹配,引用VT100小部件(特定)、使用点(.)等等。

由于应用程序默认文件避免了不必要的'.'使用,所以它们在您自己的配置中相对容易覆盖。如果您在获取资源方面遇到困难,如

代码语言:javascript
复制
xterm*VT100.geometry: 100.80

要申请,只有几个地方可看:

  • 如果您以前使用过该模式,那么它已经被使用了,并且再次设置它(稍后在您的资源文件中)不会影响所使用的值。
  • 更特定的设置(如xterm.VT100.geometry )使用通配符、*?覆盖不太特定的设置。
票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/216723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档