Dopo aver iniziato a usare Arch, sono passato ai terminali xterm e urxvt e ho apprezzato la loro flessibilità (in particolare scaleHeight risorsa). Tuttavia, non capisco perché a volte le configurazioni funzionano con Xterm e talvolta con xterm o XTerm (minuscolo e maiuscolo x e t ).
Ad esempio, ho questa strana configurazione che funziona su 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"
Tuttavia, la mia scatola Arch funziona bene su "xterm". Lo stesso vale per il terminale URxvt:non posso semplicemente trasferire il mio Arch .Xresources su Ubuntu14 casella di lavoro perché parti di esso smettono di funzionare e ottengo configurazioni diverse dopo l'esecuzione:
xrdb -merge .Xresources
X.org su xterm non aveva esempi (la ricerca di "xterm*" non ha restituito nulla in quella pagina). Vedo esempi con Xterm , xterm e XTerm online ... Mi sconcerta che la configurazione sopra funzioni poiché è sintatticamente disattivata. Perché è così? Ha forse qualcosa a che fare con risorse nuove o vecchie in X? Grazie!
xterm su Ubuntu è Xterm(297). Al momento non ho accesso alla mia casella Arch, ma sarebbe abbastanza aggiornato. Non so come distinguere la versione di Xterm dai repository di Arch, ma forse questo:https://www.archlinux.org/packages/extra/i686/xterm/
Quindi, se quel link è giusto, allora sì , sto eseguendo diverse versioni di Xterm.
Ho provato ad aggiornare xterm, ma è ancora 297.
apt-get update && apt-get install --only-upgrade xterm
Non posso farlo ora, ma potrei provare a ricompilare l'ultima versione per vedere se il problema è presente.
Seguendo i suggerimenti di ILMostro_7 di seguito ho provato XTerm.vt100.geometry , che ancora non ha funzionato. Questo è Xterm (297) su Ubuntu14. Quindi, in pratica, . o * sembra funzionare solo con un piccolo xt .
Risultato di appres XTerm xterm | grep geometry grazie a Gilles. Non ho pensato di cercare cosa esattamente xrdb -merge fa che ha provocato questo pasticcio. Quindi la mia ipotesi è che uno di questi abbia la precedenza su tutto il resto?
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
In effetti sembra xterm.vt100.geometry: 160x40 ha la precedenza su altri poiché l'istanza che continuo a ricevere. Inoltre, in qualche modo sono riuscito a rovinare completamente i menu di Xterm (Ctrl + clic del mouse) - vengono visualizzati come una piccola linea gialla. Ehi
Risposta accettata:
Le risorse X11 hanno un nome che consiste in una serie di componenti separati da un punto, come xterm.vt100.geometry . Il primo componente è il nome dell'applicazione, il secondo componente è un widget nell'applicazione e l'ultimo componente è una proprietà del widget. I widget possono essere nidificati, quindi possono esserci più di tre componenti o solo due per una proprietà dell'applicazione.
Le specifiche delle risorse X possono essere applicate a una singola risorsa o a un insieme di risorse che corrispondono a un modello. Esistono due modi per applicare una specifica a più risorse.
-
È possibile utilizzare un nome di classe anziché un nome di istanza per qualsiasi componente. Convenzionalmente, i nomi delle istanze iniziano con una lettera minuscola mentre i nomi delle classi iniziano con una lettera maiuscola.
- A livello di applicazione, il nome della classe è solitamente fisso per una determinata applicazione, in genere sul nome dell'applicazione in maiuscolo, e talvolta anche altre lettere sono maiuscole, ad es.
XTerm,XCalc,GV,NetHack, … Le applicazioni che utilizzano il toolkit X supportano un'opzione-classper impostare il nome della classe, anche-nameper impostare il nome dell'istanza (che per impostazione predefinita è il nome di base dell'eseguibile). Ad esempioXTerm.vt100.geometryimposta un valore dellageometryproprietà per ilvt100widget di qualsiasi istanza diXTermclasse; si applica axterm -name fooma non axterm -class Foo. - A livello di widget, possono esserci più widget con la stessa classe, ad esempio più pulsanti nella stessa finestra. Xterm ha un singolo widget di classe
VT100, chiamatovt100, che è la parte dell'emulatore di terminale che copre l'intera finestra. Altri widget includono i menumainMenu,fontMenuevtMenudella classeSimpleMenu.
- A livello di applicazione, il nome della classe è solitamente fisso per una determinata applicazione, in genere sul nome dell'applicazione in maiuscolo, e talvolta anche altre lettere sono maiuscole, ad es.
- Ci sono caratteri jolly:
?significa "qualsiasi widget" e*significa "qualsiasi sequenza di widget". Ad esempioxterm*backgrounddefinisce uno sfondo per qualsiasi cosa all'interno della finestra di Xterm.
Puoi esplorare l'albero delle risorse di un'applicazione che supporta il protocollo editres con editres . Poche applicazioni supportano questo protocollo, ma Xterm è una di queste.
È possibile che una determinata risorsa sia abbinata a più modelli. In questo caso si applicano le regole di precedenza. Consulta il manuale per le regole complete.
Nel tuo caso, è probabile che ci sia un'altra voce da qualche parte che corrisponde di più a xterm.vt100.geometry di xterm*VT100.geometry , e quella corrispondenza ha la precedenza sulla tua impostazione. Gli altri non hanno altre impostazioni, quindi qualunque cosa tu faccia vince.