[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]
Il gestore di finestre, o window manager (WM), è quel programma cliente, che si occupa di incorniciare le superfici degli altri programmi clienti, di gestire la messa a fuoco, il passaggio da un programma all'altro e di altre funzioni di contorno. Anche se apparentemente non sembra molto, il gestore di finestre è in grado di cambiare la faccia e il funzionamento operativo del sistema X.
Alcuni gestori di finestre consentono di utilizzare una superficie maggiore di quella che si vede sullo schermo. Si parla in questi casi di gestori di finestre con superficie grafica virtuale, ovvero di virtual window manager (VWM). Di solito, per passare da una zona all'altra della superficie grafica virtuale si utilizza la combinazione [Ctrl freccia...] nella direzione in cui ci si vuole spostare, oppure si utilizza il mouse all'interno di una tabellina riassuntiva di tutta la superficie grafica virtuale.
Volendo, a puro titolo didattico, si può utilizzare X senza un gestore di finestre:
$
xinit /usr/bin/X11/xterm -geometry =50x10+10+10
[Invio]
Oppure:
$
startx /usr/bin/X11/xterm -geometry =50x10+10+10
[Invio]
La figura 222.1 mostra il risultato di questo comando. Quando termina l'esecuzione del programma xterm, xinit fa terminare il funzionamento del servente.
|
Qui vengono descritti brevemente solo due gestore di finestre, Twm e Fvwm, che hanno doti particolari di semplicità e di adattabilità.
Il gestore di finestre tradizionale e più semplice è Twm,(1) ed è l'unico che venga fornito assieme a X (anche se le distribuzioni GNU possono tenerlo distinto in un pacchetto separato). Non è particolarmente amichevole, ma utilizza poche risorse e così è adatto agli elaboratori più lenti; inoltre è facile da configurare. L'eseguibile che svolge il lavoro, corrisponde a twm.
|
Per fare in modo che, attraverso lo script startx, si avvii automaticamente il gestore di finestre Twm, occorre ricordare di modificare il proprio script ~/.xinitrc
.
Nel caso particolare di Twm che è un gestore di finestre piuttosto povero, può essere conveniente l'avvio di altri programmi prima dell'eseguibile twm. Ecco come potrebbe terminare il file ~/.xinitrc
:
|
In questo esempio si può osservare che viene avviato prima il programma xsetroot per definire un colore uniforme del fondale (la finestra principale), quindi vengono avviati xclock e xbiff sullo sfondo (background). Infine viene avviato il gestore di finestre attraverso l'eseguibile twm.(2)
La configurazione generale di Twm risiede normalmente nel file /usr/lib/X11/twm/system.twmrc
, oppure /etc/X11/twm/system.twmrc
, a seconda dell'impostazione della propria distribuzione GNU. Eventualmente, ogni utente può definire la propria configurazione personale, nel file ~/.twmrc
, che in tal caso si sostituisce a quella generale.
Segue un esempio della configurazione di Twm, ridotto all'essenziale (una copia dovrebbe essere disponibile anche qui: <allegati/a2/esempio-di-configurazione-twmrc>). Come appare anche dal commento introduttivo, si osservi il fatto che la configurazione di Twm non ammette la presenza di caratteri speciali, comprese le lettere accentate.
|
Nella prima parte vengono definite le caratteristiche generali dell'ambiente. Successivamente si definisce il funzionamento del mouse e in particolare si abbinano delle funzioni alla pressione dei tasti di questo. La cosa più importante è predisporre dei menù in modo da poter avviare i programmi utilizzati più di frequente. L'esempio visto sopra viene ripreso in parte nella descrizione seguente:
|
In questa parte vengono definite alcune funzioni composte a cui viene fatto riferimento più giù, in corrispondenza di azioni con il mouse o eventualmente anche di selezioni all'interno di menù.
|
Questa parte definisce le azioni abbinate alla pressione di uno dei tasti del mouse, in corrispondenza di oggetti determinati:
la barra del titolo di una finestra;
un'icona;
il riepilogo delle finestre e delle icone presenti sulla superficie grafica (iconmanager).
In particolare, se si preme il primo tasto del mouse quando il puntatore si trova su una parte di superficie libera del fondale, ovvero sulla finestra principale, si apre il menù delle opzioni generali. Premendo invece il terzo tasto si apre un altro menù: quello dei programmi.
|
Il menù delle opzioni generali, permette di attivare una serie di funzioni di Twm. In particolare, vale la pena di notare la funzione f.destroy con cui si può eliminare una finestra assieme al programma in esecuzione al suo interno. Inoltre, si può osservare la funzione f.nop che non fa alcunché e viene usata in abbinamento a delle separazioni tra le voci del menù, quindi la funzione f.title che serve solo a definire un titolo per il menù.(3)
|
Il menù dei programmi è solo una raccolta di richieste di avvio di programmi di uso comune, oltre alla chiamata di funzioni importanti come il riavvio del gestore di finestre e la conclusione della sua attività. I menù possono essere annidati, come in questo esempio, dove la voce Applicazioni varie apre un altro menù di applicazioni.
Il gestore di finestre Fvwm(4) è una derivazione di Twm con superficie grafica virtuale e cornici che danno l'impressione di essere tridimensionali.
|
Per fare in modo che, attraverso lo script startx, si avvii automaticamente il gestore di finestre Fvwm, occorre ricordare di modificare il proprio script ~/.xinitrc
, inserendovi la chiamata all'eseguibile fvwm (o fvwm2, a seconda di come viene denominato l'eseguibile dalla propria distribuzione). Generalmente è sufficiente avviare il gestore di finestre, senza altri programmi accessori:
|
La configurazione generale di Fvwm risiede normalmente nel file /usr/lib/X11/fvwm/system.fvwmrc
, oppure /etc/X11/fvwm/system.fvwmrc
, a seconda dell'impostazione della propria distribuzione GNU. Eventualmente, ogni utente può definire la propria configurazione personale, nel file ~/.fvwmrc
, che in tal caso si sostituisce a quella generale.
Il file di configurazione predefinito potrebbe essere molto complesso, ma adeguatamente commentato in modo da guidare chi desidera modificarlo. In generale, non è conveniente personalizzare tutto. Di sicuro è necessario sistemare i menù, mentre il resto può rimanere come si trova.
Quello che segue è un esempio di configurazione completa di Fvwm 2.*, ridotta all'essenziale, con la presenza di una barra di avvio simile a quella di MS-Windows 95/98. Di proposito, si fa riferimento a una sola superficie grafica virtuale:
|
Matt Chapman, Window managers for X
Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>
1) X MIT più altre licenze per porzioni particolari di codice
2) È bene ricordare che xsetroot non ha bisogno di essere avviato sullo sfondo perché termina subito la sua attività.
3) Nella tradizione informatica, la sigla NOP sta per Not operate e definisce un'azione priva di risultati.
4) Fvwm 2 software libero soggetto a diverse licenze a seconda della porzione di codice coinvolta
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome x_gestori_di_finestre.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]