Capitolo successivo Capitolo precedente Indice

40. X - configurazione dei client

Il funzionamento dei programmi client può essere configurato in due modi: con l'uso di opzioni nella riga di comando (cosa comune a tutti i programmi) e attraverso l'impostazione di ``risorse''. Alcune opzioni e alcune risorse sono riconosciute dalla maggior parte dei programmi, e questo facilita il loro utilizzo e rende omogeneo il sistema.

40.1 Riga di comando delle applicazioni X

La maggior parte delle applicazioni client permette di utilizzare, nella riga di comando, una serie di opzioni standardizzate. Si tratta evidentemente di opzioni riferite principalmente all'aspetto del programma, come la dimensione e la colorazione. La tabella (seguente) mostra l'elenco di alcune di queste opzioni.


Opzione Descrizione
-foreground <colore> Colore di primo piano.
-background <colore> Colore di fondo.
-reverse Inverte il colore di primo piano con quello di sfondo.
-bordercolor <colore> Colore dei bordi.
-borderwidth <dimensione> Dimensione in pixel dello spessore dei bordi.
-title <titolo> Descrizione da porre sulla barra del titolo.
-iconic Avvia ridotto ad icona.
-font <carattere> Utilizza il tipo di carattere specificato per visualizzare il testo.
-geometry <geometria> Dimensioni e collocazione della finestra.
-display <schermo> Coordinate dello schermo su cui deve apparire la finestra.
Alcune delle opzioni comuni ai programmi per X Window System.

Nelle sezioni seguenti si analizzano le più importanti.

-display

-display <coordinate-del-display>

-d <coordinate-del-display>

X Window System è fatto per funzionare su sistemi connessi in rete, ognuno dei quali può potenzialmente avere più monitor e può mettere in esecuzione più server grafici. Di conseguenza, per identificare un monitor di un certo computer si utilizza un indirizzo composto nel modo seguente (come già era stato visto nel capitolo introduttivo a X Window System).

[<computer>]:<numero-del-server-grafico>[.<numero-dello-schermo>]

Il <computer> può essere identificato attraverso il nome, completo o parziale, oppure con l'indirizzo IP. Quando questa indicazione viene omessa, si intende quello in cui il programma viene messo in esecuzione.

Teoricamente, un computer può mettere in esecuzione contemporanea più di un server grafico, per pilotare diverse stazioni grafiche. Solitamente ciò non è possibile sui sistemi Linux, ma potrebbe essere possibile su altri sistemi Unix. La numerazione parte da zero, di conseguenza, quando si fa riferimento all'unico server grafico a disposizione, si indica semplicemente :0.

Teoricamente, un server grafico può pilotare più di uno schermo per volta. La numerazione parte da zero, di conseguenza, quando si fa riferimento all'unico schermo dell'unico server grafico a disposizione, si indica semplicemente :0.0, oppure si omette l'indicazione (:0).

La variabile di ambiente DISPLAY viene usata per definire le coordinate predefinite del monitor sul quale dovranno apparire i programmi avviati senza l'indicazione di questa opzione (-display). In situazioni normali, il suo contenuto è :0.0.

Esempi

Nell'esempio seguente, si mostra un tipico caso in cui si avvia un programma in un computer diverso dal proprio e lo si visualizza sul monitor del proprio computer. Tuttavia, perché ciò possa funzionare, occorre abilitare la connessione (questo problema viene analizzato più avanti).

pippo$ telnet topolino.zigozago.dg

...

topolino$ xcalc -display pippo.zigozago.dg:0 &

-geometry

-geometry [<dimensioni>][<posizione>]

-g [<dimensioni>][<posizione>]

Spesso è possibile definire la dimensione e la posizione della finestra iniziale aggiungendo l'opzione -geometry.

Le dimensioni sono espresse secondo la sintassi seguente.

[=]<dimensione-orizzontale>x<dimensione-verticale>

I valori possono essere espressi in punti grafici (pixel) o in caratteri, a seconda che si tratti di programmi che utilizzano la grafica o meno. Il segno = è facoltativo.

La posizione viene espressa secondo la sintassi seguente.

{+|-}<distanza-orizzontale>{+|-}<distanza-verticale>

In pratica si tratta di due valori, espressi in pixel, preceduti da un segno: un valore positivo indica una distanza dal margine sinistro o dal margine superiore; un valore negativo, indica una distanza dal margine destro o dal margine inferiore.


Posizione Descrizione
+0+0 Angolo superiore sinistro.
-0+0 Angolo superiore destro.
-0-0 Angolo inferiore destro.
+0-0 Angolo inferiore sinistro.
Posizione dei quattro angoli dello schermo.

Esempi

$ xterm -geometry +0+0 &

Avvia il programma xterm in background collocando la sua finestra a partire dal punto più altro e più a sinistra possibile della superficie virtuale attiva.

$ xterm -geometry -10-10 &

Avvia il programma xterm in background, collocando l'angolo inferiore destro della sua finestra a 10 pixel dal margine destro e dal margine inferiore della superficie virtuale attiva.

$ xterm -geometry =80x25+0+0 &

Avvia il programma xterm in background, in una finestra di 80x25 caratteri, collocata a partire dal bordo superiore e sinistro della superficie virtuale attiva.

$ xcalc -geometry =500x200+20+10 &

Avvia il programma xcalc in background, in una finestra di 500x200 pixel (deformandolo), collocata in modo che l'angolo superiore sinistro della sua finestra si trovi a 20 pixel dal margine superiore della superficie virtuale attiva e a 10 pixel dal margine sinistro.

-background

-background <colore>

-bg <colore>

Questa opzione permette di definire il colore dello sfondo. Il colore viene fornito in forma alfabetica, cioè con l'indicazione del suo nome. I nomi dei colori con le loro corrispondenze RGB sono contenuti nel file /usr/X11R6/lib/X11/rgb.txt, così come indicato nel file di configurazione /etc/XF86Config nella sezione Files.

Esempi

$ xcalc -bg blue &

Avvia xcalc utilizzando il colore blue per lo sfondo.

-foreground

-foreground <colore>

-fg <colore>

Questa opzione permette di definire il colore di primo piano. Il colore viene fornito in forma alfabetica, cioè con l'indicazione del suo nome. I nomi dei colori con le loro corrispondenze RGB sono contenuti nel file /usr/X11R6/lib/X11/rgb.txt, così come indicato nel file di configurazione /etc/XF86Config nella sezione Files.

Esempi

$ xcalc -fg red &

Avvia xcalc utilizzando il colore red per il primo piano.

-title

-title <titolo>

Questa opzione permette di definire un titolo da fare apparire sulla barra superiore della finestra: la barra del titolo.

Esempi

$ xcalc -title "calcolatrice tascabile" &

Avvia xcalc facendo apparire sulla barra del titolo: ``calcolatrice tascabile''.

-font

-font { <nome-del-font>|<dimensioni-del-font> }

-fn { <nome-del-font>|<dimensioni-del-font> }

Questa opzione permette di definire il tipo di carattere o la dimensione da utilizzare per le applicazioni che visualizzano testo.

Esempi

$ xterm -font 7x14 &

Avvia xterm utilizzando caratteri di dimensione 7x14.

$ xterm -font 10x20 &

Avvia xterm utilizzando caratteri di dimensione 10x20.

$ xterm -font -adobe-courier-* &

Avvia xterm utilizzando caratteri adobe della famiglia courier. Il tipo di carattere non viene indicato in modo preciso, e questo per mezzo dell'asterisco finale che aiuta a completarne il nome. In pratica, le altre caratteristiche del tipo di carattere vengono lasciate al loro valore predefinito.

40.2 Risorse

Ogni programma client può essere configurato attraverso delle ``risorse''. Si tratta di qualcosa di paragonabile all'assegnazione di valori a determinati oggetti che rappresentano un particolare elemento o comportamento di un programma.

Queste risorse sono descritte all'interno di file di configurazione e le relative impostazioni vengono attivate attraverso l'uso del programma xrdb (X Resources DataBase).

Nomi delle risorse

Le risorse di ogni programma sono stabilite dal programma stesso e solitamente se ne trova l'elenco nel relativo file di manuale. Si tratta normalmente del nome del programma stesso, seguito da altri nomi, separati da un punto, riferiti ad elementi di gerarchia inferiore, fino a giungere all'elemento finale. Per esempio, XClock.input.

Nell'indicazione dei nomi di queste risorse si può utilizzare l'asterisco (*), che viene interpretato nello stesso modo delle shell comuni. In questo modo, si possono indicare gruppi di risorse in modo semplificato.


Risorsa Descrizione
 *background: <colore> Colore di fondo.
 *foreground: <colore> Colore di primo piano.
 *borderColor: <colore> Colore dei bordi.
 *title: <titolo> Descrizione da porre sulla barra del titolo.
 *iconic: {on|off} Avvia ridotto ad icona.
 *font <carattere> Utilizza il tipo di carattere specificato per visualizzare il testo.
 *geometry: <geometria> Dimensioni e collocazione della finestra.
Elenco di alcune risorse utilizzate più frequentemente.

Risorse predefinite

Di norma, la directory /usr/X11R6/lib/X11/app-defaults/ contiene una serie di file, ognuno riferito ad un particolare programma e per il quale, al suo interno, vengono dichiarati i valori predefiniti delle risorse di sua competenza.

I nomi di questi file sono abbastanza simili a quelli dei rispettivi programmi; per sapere esattamente come viene identificato un programma per ciò che riguarda le sue risorse occorre consultare la sua documentazione.

<!>   I file delle risorse possono contenere dei commenti: il punto esclamativo (!) viene utilizzato come inizio di una riga da ignorare.

~/.Xdefaults

Oltre ai file contenuti all'interno di /usr/X11R6/lib/X11/app-defaults/ è possibile predisporre un file generalizzato di impostazione delle risorse. Di solito si tratta di ~/.Xdefaults.

Il file ~/.Xdefaults può essere scritto utilizzando le stesse tecniche di precompilazione dei linguaggi di programmazione più recenti.

Infatti, prima di essere elaborato, viene normalmente analizzato dal preprocessore CPP.
Oltre al normale commento indicato attraverso il punto esclamativo, si può utilizzare anche la forma del linguaggio C: /* ... */, segnalando così l'inizio e la fine del commento.

Esempi

Quello che segue è l'esempio di uno spezzone del contenuto di un file ~/.Xdefaults.

! Commentare la riga seguente se lo schermo è di grandi dimensioni.
#define SCHERMO_PICCOLO

#ifdef SCHERMO_PICCOLO
XTerm*geometry: =80x25+1+1
#else
XTerm*geometry: =100x40+1+1
#endif

! Mi piace la calcolatrice verde.
XCalc*background: green
! Voglio una barra del titolo differente.
XCalc*title: Calcolatrice

Come si vede, se viene dichiarata l'entità SCHERMO_PICCOLO, viene definita una geometrica normale per il programma XTerm, altrimenti si usa una dimensione di 100x40. Per commentare la definizione dell'entità, si può fare come nell'esempio seguente.

! Commentare la riga seguente se lo schermo è di grandi dimensioni.
/* #define SCHERMO_PICCOLO */

~/.Xresources

All'interno dello script ~/.xinitrc si incontrano di solito, tra le altre, le righe seguenti.

userresources=$HOME/.Xresources
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $userresources ]; then
    xrdb -merge $userresources
fi

In pratica, se esiste il file /usr/X11R6/lib/X11/xinit/.Xresources, viene eseguito il programma xrdb, con l'opzione -merge, utilizzando il suo contenuto, e quindi, se esiste il file ~/.Xresources, viene eseguito lo stesso programma xrdb utilizzando anche il contenuto di quest'ultimo file.

Di conseguenza, il file /usr/X11R6/lib/X11/xinit/.Xresources deve essere considerato come il luogo in cui definire la configurazione locale e generale, mentre ~/.Xresources è quello in cui ogni utente può collocare le proprie particolari personalizzazioni. <!>   Di solito questo file non è presente; il file ~/.Xdefaults svolge già questo compito.

$ xrdb

xrdb [<opzioni>] [<file>]

xrdb (X Resources DataBase) permette di leggere o modificare le impostazioni delle risorse. Viene usato normalmente per leggere il contenuto di un file e aggiornare di conseguenza l'impostazione corrente delle risorse.

Vedere xrdb(1)

Alcune opzioni

-merge

Aggiunge le impostazioni ottenute dal file indicato.

-query

Permette di ottenere un listato delle impostazioni attive.

Esempi

$ xrdb -merge ./risorse

Aggiunge il contenuto del file ./risorse alle impostazioni attuali delle risorse.

-xrm

-xrm <risorsa>

La maggior parte dei programmi per X Window System accetta anche questa opzione, eventualmente ripetuta più volte nella stessa riga di comando, per definire una proprietà attraverso una risorsa. Questo permette di definire delle caratteristiche senza intervenire su file di configurazione, senza dover richiamare il programma xrdb e senza interferire sugli altri programmi eventualmente avviati successivamente.

Esempi

$ xcalc -xrm '*background: gold'

Avvia xrdb con un colore di fondo dorato. Vengono usati gli apici singoli per evitare che la shell tenti di interpretare l'asterisco.

$ xcalc -xrm '*background: gold' -xrm '*foreground: red'

Avvia xrdb con un colore di fondo dorato e con un colore di primo piano rosso.

 

1997.10.26 - Scritto da Daniele Giacomini   daniele@calion.com   (vedi copyright: Appunti Linux).


Capitolo successivo Capitolo precedente Indice