开始使用 Arch 后,我切换到 xterm 和 urxvt 终端并享受它们的灵活性(尤其是scaleHeight
资源)。但是,我不明白为什么有时配置Xterm
与xterm
or XTerm
(小写与大写x
和t
)一起工作,有时使用。
例如,我有一个在 Ubuntu 上运行的奇怪配置:
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"
Run Code Online (Sandbox Code Playgroud)
但是,我的 Arch 盒子在“xterm”上运行良好。URxvt 终端也是如此:我不能简单地将我的 Arch .Xresources 移植到 Ubuntu14 工作箱,因为它的一部分停止工作,并且在运行后我得到了不同的设置:
xrdb -merge .Xresources
Run Code Online (Sandbox Code Playgroud)
xterm 上的 X.org 没有任何示例(在该页面上搜索“xterm*”没有返回任何内容)。我看到带有Xterm
,xterm
和XTerm
在线的示例......上面的配置让我感到困惑,因为它在语法上是关闭的。为什么会这样?它可能与 X 中的新资源或旧资源有关吗?谢谢!
ubuntu 上的 xterm 是 Xterm(297)。我目前无法访问我的 Arch 盒子,但它会是最新的。我不知道如何从 Arch 的存储库中分辨 Xterm 版本,但也许是这样的:https : //www.archlinux.org/packages/extra/i686/xterm/ 所以,如果该链接是正确的,那么是的,我正在运行不同的 Xterm 版本。
我尝试升级 xterm,但它仍然是 297。
apt-get update && apt-get install --only-upgrade xterm
Run Code Online (Sandbox Code Playgroud)
我现在不能这样做,但我可能会尝试重新编译最新版本以查看问题是否存在。
按照下面 ILMostro_7 的建议,我尝试了XTerm.vt100.geometry
,但仍然无效。这是 Ubuntu14 上的 Xterm (297)。所以基本上,.
或者*
它似乎只适用于很少的xt
.
appres XTerm xterm | grep geometry
感谢 Gilles 的结果。我没想到查查究竟xrdb -merge
是什么导致了这个烂摊子。所以我的猜测是其中之一优先于其他所有内容?
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
Run Code Online (Sandbox Code Playgroud)
事实上,它看起来xterm.vt100.geometry: 160x40
优先于其他实例,因为我一直在获取实例。此外,我以某种方式设法完全搞砸了 Xterm 菜单(Ctrl+鼠标单击)-它们显示为一条小黄线。呵呵
Gil*_*il' 11
X11 资源的名称由一系列由点分隔的组件组成,例如xterm.vt100.geometry
. 第一个组件是应用程序的名称,第二个组件是该应用程序中的小部件,最后一个组件是小部件的属性。小部件可以嵌套,因此应用程序的一个属性可以有三个以上的组件,或者只有两个组件。
X 资源的规范可以应用于单个资源或匹配模式的一组资源。有两种方法可以使规范适用于多个资源。
您可以为任何组件使用类名而不是实例名。通常,实例名称以小写字母开头,而类名称以大写字母开头。
XTerm
, XCalc
, GV
, NetHack
, ... 使用X 工具包的应用程序支持一个选项-class
来设置类名,以及-name
设置实例名(默认为可执行文件的基名)。例如XTerm.vt100.geometry
设置的值geometry
属性为vt100
所述的任何实例的插件XTerm
类; 它适用于xterm -name foo
但不适用于xterm -class Foo
.VT100
名为的类小部件vt100
,它是覆盖整个窗口的终端模拟器部分。其他小工具包括菜单mainMenu
,fontMenu
以及vtMenu
类的SimpleMenu
。?
表示“任何小部件”,*
表示“任何小部件序列”。例如,xterm*background
为 Xterm 窗口内的所有内容定义背景。您可以使用 探索支持 editres 协议的应用程序的资源树editres
。很少有应用程序支持此协议,但 Xterm 就是其中之一。
给定资源可能与多个模式匹配。在这种情况下,优先规则适用。有关完整规则,请参阅手册。
在您的情况下,很可能在某处有另一个条目与xterm.vt100.geometry
than更接近匹配xterm*VT100.geometry
,并且该匹配会覆盖您的设置。其他人没有其他设置,所以无论你做什么都会赢。
归档时间: |
|
查看次数: |
8457 次 |
最近记录: |