配置文件中的“Xterm”或“xterm”
開始使用 Arch 後,我切換到 xterm 和 urxvt 終端並享受它們的靈活性(尤其是
scaleHeight
資源)。但是,我不明白為什麼有時配置Xterm
與xterm
或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"
但是,我的 Arch 盒子在“xterm”上執行良好。URxvt 終端也是如此:我不能簡單地將我的 Arch .Xresources 移植到 Ubuntu14 工作箱,因為它的一部分停止工作,並且在執行後我得到了不同的設置:
xrdb -merge .Xresources
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
我現在不能這樣做,但我可能會嘗試重新編譯最新版本以查看問題是否存在。
按照下面 ILMostro_7 的建議,我嘗試了
XTerm.vt100.geometry
,但仍然沒有用。這是 Ubuntu14 上的 Xterm (297)。所以基本上,.
或者*
它似乎只適用於 littlext
。
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
事實上,自從我不斷獲得實例以來,它看起來
xterm.vt100.geometry: 160x40
優先於其他實例。此外,我不知何故設法完全搞砸了 Xterm 菜單(Ctrl+滑鼠點擊)——它們顯示為一條黃色的小線。呵呵
X11 資源的名稱由一系列以點分隔的組件組成,例如
xterm.vt100.geometry
. 第一個組件是應用程序的名稱,第二個組件是該應用程序中的小元件,最後一個組件是小元件的屬性。小元件可以嵌套,因此可以有三個以上的組件,或者對於應用程序的一個屬性只有兩個。X 資源的規範可以應用於單個資源或匹配模式的一組資源。有兩種方法可以使規範應用於多個資源。
您可以為任何組件使用類名而不是實例名。通常,實例名稱以小寫字母開頭,而類名稱以大寫字母開頭。
- 在應用程序級別,對於給定的應用程序,類名通常是固定的,通常為大寫的應用程序名稱,有時其他字母也是大寫的,例如
XTerm
,XCalc
,GV
,NetHack
, … 使用X 工具包的應用程序支持一個選項-class
來設置類名,以及-name
設置實例名(預設為執行檔的基名)。例如為類的任何實例的小元件設置屬性XTerm.vt100.geometry
值;它適用於但不適用於。geometry``vt100``XTerm``xterm -name foo``xterm -class Foo
- 在小元件級別,可以有多個具有相同類的小元件,例如同一視窗中的多個按鈕。Xterm 有一個 class 小元件
VT100
,稱為vt100
,它是覆蓋整個視窗的終端仿真器部分。其他小元件包括菜單mainMenu
和fontMenu
類vtMenu
。SimpleMenu
有萬用字元:
?
表示“任何小元件”,*
表示“任何小元件序列”。例如xterm*background
,為 Xterm 視窗中的所有內容定義背景。您可以瀏覽支持 editres 協議的應用程序的資源樹
editres
。很少有應用程序支持此協議,但 Xterm 就是其中之一。一個給定的資源有可能被多個模式匹配。在這種情況下,優先規則適用。有關完整規則,請參閱手冊。
在您的情況下,很可能在某處有另一個條目與
xterm.vt100.geometry
than更接近xterm*VT100.geometry
,並且該匹配會覆蓋您的設置。其他人沒有其他設置,所以無論你做什麼都會贏。