Manuale di FreeBSD
Indietro | Capitolo 5 L'X Window System | Avanti

# 5.2 Capire X

Usare X per la prima volta può essere talvolta scioccante per quelli che hanno familiarità con altri ambienti grafici, come Microsoft® Windows® e Mac OS®.

Seppure non sia necessario capire tutti i dettagli dei diversi componenti di X e come interagiscono, tuttavia una qualche conoscenza di base rende possibile avvantaggiarsi delle funzionalità di X.

## 5.2.1 Perchè X?

X non è il primo window manager scritto per UNIX®, ma è il più popolare. Il gruppo di sviluppo originale di X aveva già lavorato ad un altro sistema grafico prima di scrivere X. Il nome di quel sistema era “W” (per “Window”). X era semplicemente la lettera seguente nell'alfabeto Romano.

X può essere chiamato “X”, “X Window System”, “X11”, e in altri modi. Chiamare X11 “X Windows” potrebbe dare fastidio a della gente; per ulteriori dettagli su questo, consulta X(7).

## 5.2.2 Il modello client/server di X

X è stato progettato fin dall'inizio per essere incentrato sulla rete ed adotta un modello “client-server”.

Nel modello di X, il “server X” funziona sul computer che ha tastiera, monitor e mouse attaccati. Il server è responsabile di operazioni come il controllo del display, la gestione dell'input dalla tastiera e dal mouse, e di altri dispositivi di input o di output (es. una “tavoletta” può essere usata come dispositivo di input, e un proiettore video può essere un dispositivo di output alternativo). Ogni applicazione X (come XTerm, o Netscape®) è un “client”. Un client spedisce messaggi al server come “Per favore disegna una finestra a queste coordinate”, e il server risponde con messaggi quali “L'utente ha appena premuto il bottone OK”.

In una casa o in un piccolo ufficio, il server X e i client X di solito funzioneranno sullo stesso computer. Ad ogni modo, è perfettamente possibile far funzionare il server X su un desktop meno potente, e far funzionare le applicazioni X (i client) su di una potente e costosa macchina che serve l'ufficio. In questo scenario le comunicazioni tra il client X e il server hanno luogo attraverso la rete.

Questo confonde certa gente, perchè la terminologia di X è proprio l'opposto di quello che ci si possa aspettare di solito. Normalmente ci si aspetta che il “server X” sia la grossa e potente macchina in fondo alla sala, e il “client X” sia la macchina sulla propria scrivania.

È importante ricordare che il server X è la macchina con il monitor e la tastiera, e i client X sono i programmi che mostrano le finestre.

Non c'è nulla nel protocollo che obbliga la macchina client e quella server ad utilizzare lo stesso sistema operativo, oppure a funzionare sullo stesso tipo di computer. È certamente possibile far funzionare un server X su Microsoft Windows o Mac OS di Apple, e ci sono diverse applicazioni free o commerciali che fanno esattamente questo.

## 5.2.3 Il Window Manager

La filosofia di design di X è molto simile a quella di UNIX “strumenti, non regole”. Questo significa che X non prova a dire come una azione debba essere compiuta. Invece, vengono forniti degli strumenti all'utente, ed è quindi responsabilità dell'utente decidere come usare questi strumenti.

Questa filosofia si estende al fatto che X non dice come le finestre debbano comparire sullo schermo, né come queste debbano essere spostate con il mouse, né quali tasti servano per muoversi attraverso le finestre (ad esempio, Alt+Tab, nel caso di Microsoft Windows), né che aspetto devono avere le barre sopra ogni finestra, se queste hanno o meno bottoni di chiusura, e così via.

Al contrario X delega questa responsabilità ad una applicazione chiamata “Window Manager”. Ci sono dozzine di window manager disponibili per X; AfterStep, Blackbox, ctwm, Enlightenment, fvwm, Sawfish, twm, Window Maker, ed altri. Ciascuno di questi window manager fornisce un diverso aspetto ed ambiente; alcuni di questi supportano i “virtual desktop”; alcuni consentono di avere delle combinazioni di tasti predefinite per gestire il desktop; altri hanno un pulsante “Start” o simile; altri possono avere dei “temi”, permettendo un cambio completo di aspetto e funzionalità applicando un nuovo tema. Questi window manager, e molti altri, sono disponibili nella categoria `x11-wm` dei Port.

Inoltre, i desktop environments KDE e GNOME hanno tutti e due il proprio window manager che si integra con il desktop.

Ciascun window manager inoltre ha a un proprio meccanismo di configurazione; alcuni si aspettano di avere un file di configurazione scritto a mano, altri hanno delle interfacce grafiche per molti dei compiti di configurazione; almeno uno (Sawfish) ha un file di configurazione scritto in un dialetto del linguaggio Lisp.

> Regole di fuoco: Un'altra caratteristica per la quale il window manager deve avere responsabilità è la cosiddetta “focus policy”, o Regola di fuoco. Ogni sistema a finestre necessita di un modo per scegliere la finestra che deve essere attiva e che deve ricevere le comunicazioni da tastiera, e dovrebbe anche indicare in modo visibile quale finestra è attiva in un determinato momento.

> Una Focus policy familiare è chiamata “click-to-focus”. Questo è il modello utilizzato da Microsoft Windows, nel quale una finestra diventa attiva dopo aver ricevuto un click del mouse.

> X non supporta alcuna focus policy particolare. È invece il Window Manager che controlla quale finestra è attiva in un determinato momento. Diversi Window manager supporteranno diversi metodi di focus. Tutti supportano il click-to-focus, e la maggioranza di questi ne supporta molti altri.

> Le regole di fuoco più popolari sono:

> focus-follows-mouse (o fuoco-segue-mouse)

>   La finestra su cui si trova il puntatore è quella che riceve il fuoco. Questa potrebbe non essere necessariamente la finestra che si trova davanti a tutte le altre. Il fuoco cambia se si punta un'altra finestra, e non c'è bisogno di fare click con il mouse.

> sloppy-focus

>   Questa policy è una piccola estensione della focus-follows-mouse. Con focus-follows-mouse, se il mouse viene mosso sulla finestra principale (o sullo sfondo), allora nessuna finestra avrà il fuoco, e la pressione di un tasto verrà semplicemente ignorata. Con sloppy-focus, il fuoco è solamente cambiato quando il cursore entra in una nuova finestra, e non quando si esce dalla finestra corrente.

> click-to-focus

>   La finestra attiva è scelta dal click del mouse. La finestra potrebbe essere allora “alzata”, ed apparire davanti alle altre finestre. Tutte le pressioni dei tasti saranno da quel momento dirette a questa finestra, anche se il cursore viene spostato su un'altra finestra.

> Molti window manager supportano altre policy, come possono avere variazioni sul tema. Per maggiori informazioni vi preghiamo di consultare la documentazione stessa del window manager.

## 5.2.4 I Widget

L'approccio di X di fornire strumenti e non regole si estende anche ai widget visti sullo schermo in ogni applicazione.

“Widget” è un termine usato per tutte quelle parti nell'interfaccia utente che possono essere cliccate o manipolate in un certo modo; bottoni, checkboxes, radio buttons, icone, liste, e così via. Microsoft Windows li chiama “controlli”.

Sia Microsoft Windows che Apple Mac OS hanno delle regole strette per i widget. Gli sviluppatori devono assicurarsi che tutte le loro applicazioni condividano lo stesso stile e lo stesso aspetto. Con X, non si è sentito un particolare bisogno di obbligare ad avere un particolare stile grafico, o settare widgets a cui aderire.

Come risultato, non aspettatevi che le applicazioni per X abbiano lo stesso stile e lo stesso aspetto. Ci sono alcuni widgets popolari e le loro variazioni, come l'originale Athena sviluppato dal MIT, Motif® (dal quale è stato modellato il widget presente su Microsoft Windows, tutti angoli a doppio livello e tre sfumature di grigio), OpenLook, ed altri.

Molte applicazioni nuove di X di oggi usano un widget con sembianze moderne, probabilmente Qt, usato da KDE, o GTK+, usato da GNOME. Rispetto a questo, c'è un accenno di convergenza nell'aspetto dei desktop UNIX, il che facilita le cose ai nuovi utenti.

Indietro | Partenza | Avanti
L'X Window System | Risali | Installazione di X11

Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.