Xterm

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

  • June 30, 2016

開始使用 Arch 後,我切換到 xterm 和 urxvt 終端並享受它們的靈活性(尤其是scaleHeight資源)。但是,我不明白為什麼有時配置XtermxtermXTerm(小寫與大寫xt)一起使用,有時與或一起使用。

例如,我有一個在 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)。所以基本上,.或者*它似乎只適用於 little 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

事實上,自從我不斷獲得實例以來,它看起來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,它是覆蓋整個視窗的終端仿真器部分。其他小元件包括菜單mainMenufontMenuvtMenuSimpleMenu
  • 有萬用字元:?表示“任何小元件”,*表示“任何小元件序列”。例如xterm*background,為 Xterm 視窗中的所有內容定義背景。

您可以瀏覽支持 editres 協議的應用程序的資源樹editres。很少有應用程序支持此協議,但 Xterm 就是其中之一。

一個給定的資源有可能被多個模式匹配。在這種情況下,優先規則適用。有關完整規則,請參閱手冊

在您的情況下,很可能在某處有另一個條目與xterm.vt100.geometrythan更接近xterm*VT100.geometry,並且該匹配會覆蓋您的設置。其他人沒有其他設置,所以無論你做什麼都會贏。

引用自:https://unix.stackexchange.com/questions/216723