Poté, co jsem začal používat Arch, přešel jsem na terminály xterm a urxvt a užíval jsem si jejich flexibility (zejména scaleHeight
zdroj). Nechápu však, proč někdy konfigurace fungují s Xterm
a někdy s xterm
nebo XTerm
(malá vs velká písmena x
a t
).
Například mám tuto zvláštní konfiguraci, která funguje na 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"
Můj Arch box však běží na „xterm“ v pořádku. Totéž platí pro terminál URxvt:Nemohu jednoduše přenést svůj Arch .Xresources do pracovního boxu Ubuntu14, protože jeho části přestanou fungovat a po spuštění dostanu různá nastavení:
xrdb -merge .Xresources
X.org na xterm neměl žádné příklady (hledání „xterm*“ na této stránce nic nevrátilo). Vidím příklady s Xterm
, xterm
a XTerm
online… Udivuje mě, že výše uvedená konfigurace funguje, protože je syntakticky vypnutá. proč tomu tak je? Může to mít něco společného s novými nebo starými zdroji v X? Díky!
xterm na ubuntu je Xterm(297). Momentálně nemám přístup ke svému Arch boxu, ale bylo by to docela aktuální. Nevím, jak rozeznat verzi Xterm od repozitářů Arch, ale možná toto:https://www.archlinux.org/packages/extra/i686/xterm/
Takže pokud je ten odkaz správný, pak ano , Používám různé verze Xterm.
Zkoušel jsem upgradovat xterm, ale stále je to 297.
apt-get update && apt-get install --only-upgrade xterm
Teď to nemůžu udělat, ale možná se pokusím překompilovat nejnovější verzi, abych zjistil, jestli tam není problém.
Podle níže uvedených návrhů od ILMostro_7 jsem zkusil XTerm.vt100.geometry
, který stále nefungoval. Toto je Xterm (297) na Ubuntu14. Takže v podstatě .
nebo *
zdá se, že funguje pouze s malým xt
.
Výsledek appres XTerm xterm | grep geometry
díky Gillesovi. Nenapadlo mě hledat, co přesně xrdb -merge
dělá, což vedlo k tomuto nepořádku. Takže můj odhad je, že jeden z nich má přednost před vším ostatním?
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
Ve skutečnosti to vypadá jako xterm.vt100.geometry: 160x40
má přednost před ostatními, od té doby se mi neustále dostává. Také se mi nějak podařilo úplně podělat Xterm menu (Ctrl+kliknutí myší) – zobrazují se jako malá žlutá čára. Hehe
Přijatá odpověď:
Zdroje X11 mají název, který se skládá z řady komponent oddělených tečkou, jako je xterm.vt100.geometry
. První komponenta je název aplikace, druhá komponenta je widget v této aplikaci a poslední komponenta je vlastnost widgetu. Widgety mohou být vnořené, takže mohou existovat více než tři komponenty nebo pouze dvě pro vlastnost aplikace.
Specifikace X zdrojů se může vztahovat na jeden zdroj nebo na sadu zdrojů odpovídajících vzoru. Existují dva způsoby, jak specifikaci použít pro více zdrojů.
-
Pro jakoukoli komponentu můžete místo názvu instance použít název třídy. Názvy instancí obvykle začínají malým písmenem, zatímco názvy tříd začínají velkým písmenem.
- Na úrovni aplikace je název třídy pro danou aplikaci obvykle pevně daný, obvykle na název aplikace s velkými písmeny a někdy jsou také velká písmena, např.
XTerm
,XCalc
,GV
,NetHack
, … Aplikace používající sadu nástrojů X podporují volbu-class
pro nastavení názvu třídy a také-name
pro nastavení názvu instance (jehož výchozím nastavením je základní název spustitelného souboru). NapříkladXTerm.vt100.geometry
nastavuje hodnotugeometry
vlastnost provt100
widget jakékoli instanceXTerm
třída; platí proxterm -name foo
ale ne naxterm -class Foo
. - Na úrovni widgetu může být více widgetů se stejnou třídou, například více tlačítek ve stejném okně. Xterm má jeden widget třídy
VT100
s názvemvt100
, což je část emulátoru terminálu, která pokrývá celé okno. Mezi další widgety patří nabídkymainMenu
,fontMenu
avtMenu
třídySimpleMenu
.
- Na úrovni aplikace je název třídy pro danou aplikaci obvykle pevně daný, obvykle na název aplikace s velkými písmeny a někdy jsou také velká písmena, např.
- Existují zástupné znaky:
?
znamená „jakýkoli widget“ a*
znamená „jakákoli sekvence widgetů“. Napříkladxterm*background
definuje pozadí pro absolutně vše v okně Xterm.
Strom prostředků aplikace, která podporuje protokol editres, můžete prozkoumat pomocí editres
. Tento protokol podporuje jen málo aplikací, ale Xterm je jednou z nich.
Je možné, že daný zdroj bude odpovídat více vzorům. V tomto případě platí pravidla přednosti. Úplná pravidla naleznete v příručce.
Ve vašem případě je pravděpodobné, že někde existuje další záznam, který se blíže shoduje s xterm.vt100.geometry
než xterm*VT100.geometry
a tato shoda přepíše vaše nastavení. Ostatní nemají žádné jiné nastavení, takže cokoli uděláte, vyhrává.