Nachdem ich begonnen hatte, Arch zu verwenden, wechselte ich zu xterm und urxvt terminal und genoss die Flexibilität von ihnen (insbesondere scaleHeight
Ressource). Ich verstehe jedoch nicht, warum manchmal Konfigurationen mit Xterm
funktionieren und manchmal mit xterm
oder XTerm
(Klein- vs. Großbuchstaben x
und t
).
Zum Beispiel habe ich diese seltsame Konfiguration, die auf Ubuntu funktioniert:
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"
Meine Arch-Box läuft jedoch auf „xterm“ einwandfrei. Dasselbe gilt für das URxvt-Terminal:Ich kann meine Arch .Xresources nicht einfach auf die Ubuntu14-Workbox portieren, weil Teile davon nicht mehr funktionieren und ich nach dem Ausführen andere Setups erhalte:
xrdb -merge .Xresources
X.org auf xterm hatte keine Beispiele (die Suche nach „xterm*“ ergab auf dieser Seite nichts). Ich sehe Beispiele mit Xterm
, xterm
und XTerm
online… Es verblüfft mich, dass die obige Konfiguration funktioniert, da sie syntaktisch ausgeschaltet ist. Warum ist das so? Hat es vielleicht etwas mit neuen oder alten Ressourcen in X zu tun? Danke!
xterm auf Ubuntu ist Xterm(297). Ich habe im Moment keinen Zugriff auf meine Arch-Box, aber es wäre ziemlich aktuell. Ich weiß nicht, wie ich die Xterm-Version von Archs Repos unterscheiden soll, aber vielleicht das:https://www.archlinux.org/packages/extra/i686/xterm/
Also, wenn dieser Link richtig ist, dann ja , ich verwende verschiedene Xterm-Versionen.
Ich habe versucht, xterm zu aktualisieren, aber es ist immer noch 297.
apt-get update && apt-get install --only-upgrade xterm
Ich kann es jetzt nicht tun, aber ich könnte versuchen, die neueste Version neu zu kompilieren, um zu sehen, ob das Problem vorhanden ist.
Den Vorschlägen von ILMostro_7 folgend habe ich XTerm.vt100.geometry
ausprobiert , was immer noch nicht funktioniert hat. Dies ist Xterm (297) auf Ubuntu14. Also im Grunde, .
oder *
es scheint nur mit wenig xt
zu funktionieren .
Ergebnis von appres XTerm xterm | grep geometry
danke Gilles. Ich habe nicht daran gedacht, nachzuschlagen, was genau xrdb -merge
ist tut, was zu diesem Durcheinander führte. Ich vermute also, dass einer von diesen Vorrang vor allem anderen hat?
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
Tatsächlich sieht es so aus:xterm.vt100.geometry: 160x40
hat Vorrang vor anderen, da die Instanz, die ich immer wieder bekomme. Außerdem habe ich es irgendwie geschafft, Xterm-Menüs (Strg+Mausklick) komplett zu vermasseln – sie werden als kleine gelbe Linie angezeigt. Hihi
Akzeptierte Antwort:
X11-Ressourcen haben einen Namen, der aus einer Reihe von Komponenten besteht, die durch einen Punkt getrennt sind, z. B. xterm.vt100.geometry
. Die erste Komponente ist der Name der Anwendung, die zweite Komponente ist ein Widget in dieser Anwendung und die letzte Komponente ist eine Eigenschaft des Widgets. Widgets können verschachtelt werden, sodass es mehr als drei Komponenten oder nur zwei für eine Eigenschaft der Anwendung geben kann.
Spezifikationen von X-Ressourcen können für eine einzelne Ressource oder für eine Gruppe von Ressourcen gelten, die einem Muster entsprechen. Es gibt zwei Möglichkeiten, eine Spezifikation auf mehrere Ressourcen anzuwenden.
-
Sie können für jede Komponente einen Klassennamen anstelle eines Instanznamens verwenden. Herkömmlicherweise beginnen Instanznamen mit einem Kleinbuchstaben, während Klassennamen mit einem Großbuchstaben beginnen.
- Auf Anwendungsebene ist der Klassenname normalerweise für eine bestimmte Anwendung festgelegt, typischerweise auf den großgeschriebenen Anwendungsnamen, und manchmal werden auch andere Buchstaben in Großbuchstaben geschrieben, z.
XTerm
,XCalc
,GV
,NetHack
, … Anwendungen, die das X-Toolkit verwenden, unterstützen eine Option-class
um den Klassennamen sowie-name
festzulegen um den Instanznamen festzulegen (der standardmäßig der Basisname der ausführbaren Datei ist). Zum BeispielXTerm.vt100.geometry
setzt einen Wert dergeometry
-Eigenschaft fürvt100
Widget einer beliebigen Instanz vonXTerm
Klasse; es gilt fürxterm -name foo
aber nicht zuxterm -class Foo
. - Auf Widget-Ebene kann es mehrere Widgets mit derselben Klasse geben, zum Beispiel mehrere Schaltflächen im selben Fenster. Xterm hat ein einzelnes Widget der Klasse
VT100
, genanntvt100
, das ist der Teil des Terminalemulators, der das gesamte Fenster abdeckt. Andere Widgets beinhalten die MenüsmainMenu
,fontMenu
undvtMenu
der KlasseSimpleMenu
.
- Auf Anwendungsebene ist der Klassenname normalerweise für eine bestimmte Anwendung festgelegt, typischerweise auf den großgeschriebenen Anwendungsnamen, und manchmal werden auch andere Buchstaben in Großbuchstaben geschrieben, z.
- Es gibt Platzhalter:
?
bedeutet „beliebiges Widget“ und*
bedeutet „jede Widget-Sequenz“. Zum Beispielxterm*background
definiert einen Hintergrund für absolut alles innerhalb des Xterm-Fensters.
Sie können den Ressourcenbaum einer Anwendung, die das Editres-Protokoll unterstützt, mit editres
erkunden . Nur wenige Anwendungen unterstützen dieses Protokoll, aber Xterm ist eine davon.
Es ist möglich, dass eine bestimmte Ressource mit mehreren Mustern abgeglichen wird. In diesem Fall gelten Vorrangregeln. Die vollständigen Regeln finden Sie im Handbuch.
In Ihrem Fall ist es wahrscheinlich, dass es irgendwo einen anderen Eintrag gibt, der besser zu xterm.vt100.geometry
passt als xterm*VT100.geometry
, und diese Übereinstimmung überschreibt Ihre Einstellung. Die anderen haben keine andere Einstellung, also gewinnt alles, was Sie tun.