<!--
     The FreeBSD Italian Documentation Project

     $FreeBSD: doc/it_IT.ISO8859-15/books/handbook/x11/chapter.sgml,v 1.2 2004/01/14 11:11:14 ale Exp $
     Original revision: 1.82
-->

<chapter id="x11">
  <title>L'X Window System</title>

  <sect1>
    <title>Sinossi</title>

    <para>FreeBSD usa XFree86 per fornire agli utenti una potente
      interfaccia grafica.  XFree86 &egrave; una implementazione gratuita dell'X
      Window System.  Questo capitolo copre l'installazione e la
      configurazione di XFree86 su un sistema FreeBSD.  Per ulteriori
      informazioni su XFree86 e sull'hardware che supporta, controlla il
      <ulink url="http://www.XFree86.org/">sito web</ulink> di XFree86.</para>

    <para>Dopo aver letto questo capitolo, conoscerai:</para>

    <itemizedlist>
      <listitem>
        <para>I diversi componenti dell'X Window system, e come
          questi cooperano.</para>
      </listitem>

      <listitem>
        <para>Come installare e configurare XFree86.</para>
      </listitem>

      <listitem>
        <para>Come installare ed usare diversi window manager.</para>
      </listitem>

      <listitem>
        <para>Come usare i font TrueType in XFree86.</para>
      </listitem>

      <listitem>
        <para>Come impostare il sistema per il login grafico (XDM).</para>
      </listitem>
    </itemizedlist>

    <para>Prima di leggere questo capitolo, dovresti:</para>

    <itemizedlist>
      <listitem>
        <para>Sapere come installare del software di terze parti (<xref
          linkend="ports">).</para>
      </listitem>
    </itemizedlist>
  </sect1>

  <sect1 id="x-understanding">

    <title>Capire X</title>

    <para>Usare X per la prima volta pu&ograve; essere talvolta scioccante per
      quelli che hanno familiarit&agrave; con altri ambienti grafici, come
      Microsoft Windows o MacOS</para>

    <para>Non &eacute; necessario capire tutti i dettagli dei diversi componenti
      di X e come interagiscono; in ogni caso, una piccola conoscenza di base
      rende possibile avvantaggiarsi delle funzionalit&agrave; di X.</para>

    <sect2>
      <title>Perch&egrave; X?</title>

      <para>X non &egrave; il primo window manager scritto per Unix, ma &egrave;
        il pi&ugrave; popolare.
        Il gruppo di sviluppo di X aveva gi&agrave; lavorato ad un altro
        sistema grafico prima di scrivere X.  Il nome di quel sistema era
        <quote>W</quote> (per <quote>Window</quote>).  X &egrave; semplicemente
        la lettera seguente nell'alfabeto Romano.</para>

      <para>X pu&ograve; essere chiamato <quote>X</quote>, <quote>X Window
          System</quote>, <quote>X11</quote>, e in altri modi.  Chiamare X11
        <quote>X Windows</quote> potrebbe dare fastidio a della gente; d&agrave;
        un'occhiata a &man.X.1; per ulteriori informazioni su questo.</para>
    </sect2>

    <sect2>
      <title>Il modello client/server di X</title>

      <para>X &egrave; stato progettato fin dall'inizio per essere usato in
        rete, e adotta un modello <quote>client-server</quote>.
        Nel modello di X, il <quote>server X</quote> funziona sul computer che
        ha tastiera, monitor e mouse attaccati.  Il server &egrave; responsabile
        del controllo del display, del trattamento dell'input dalla tastiera e
        dal mouse, e cos&igrave; via.  Ogni applicazione X (come
        <application>XTerm</application>, o <application>Netscape</application>)
        &egrave; un <quote>client</quote>.  Un client spedisce messaggi al
        server come <quote>Per favore disegna una finestra a queste
          coordinate</quote>, e il server risponde con messaggi quali
        <quote>L'utente ha appena premuto il bottone OK</quote>.</para>

      <para>Se si tratta solo di un computer, come in una casa o in un
        piccolo ufficio, il server X e i client X funzioneranno sullo stesso
        computer.  Ad ogni modo, &egrave; perfettamente possibile far funzionare
        il server X su una macchina meno potente, e far funzionare le
        applicazioni (i client) su di una macchina che serve l'ufficio.
        In questo scenario le comunicazioni tra il client X e il server hanno
        luogo attraverso la rete.</para>

      <para>Questo confonde certa gente, perch&egrave; la terminologia di X
        &egrave; proprio l'opposto di come ci si possa aspettare di solito.
        Normalmente ci si aspetta che il <quote>server X</quote> sia la grossa e
        potente macchina in fondo alla sala, e il <quote>client X</quote> sia la
        macchina sulla propria scrivania.</para>

      <para>Ricorda che il server X &egrave; la macchina con il monitor e la
        tastiera, e i client X sono i programmi che mostrano le
        finestre.</para>

      <para>Non c'&egrave; 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.  &Egrave; certamente possibile
        far funzionare un server X su Microsoft Windows o MacOS, e ci sono
        diverse applicazioni free o commerciali che fanno esattamente
        quello.</para>

      <para>Il server X che viene fornito con FreeBSD &egrave; chiamato
        <application>XFree86</application>, ed &egrave; disponibile
        gratuitamente, sotto una licenza molto simile a quella di FreeBSD.
        Server X commerciali per FreeBSD sono comunque disponibili.</para>
    </sect2>

    <sect2>
      <title>Il Window Manager</title>

      <para>La filosofia di design di X &egrave; molto simile a quella di Unix,
        <quote>strumenti, non regole</quote>.  Questo significa che X non prova
        a dire come una azione debba essere compiuta.  Invece, vengono forniti
        degli strumenti all'utente, ed &egrave; quindi esponsabilit&egrave;
        dell'utente decidere come usare questi strumenti.</para>

      <para>Questa filosofia si estende al fatto che X non dice come le
        finestre debbano comparire sullo schermo, n&eacute; come queste debbano
        essere spostate con il mouse, n&eacute; quali tasti servano per muoversi
        attraverso le finestre (ad esempio, <keycombo action="simul">
          <keycap>Alt</keycap>
          <keycap>Tab</keycap>
        </keycombo>, nel caso di Windows), n&eacute; che aspetto devono avere
        le barre sopra ogni finestra, se queste hanno o meno bottoni di
        chiusura, e cos&igrave; via.</para>

      <para>Invece X delega questa responsabilit&egrave; ad una applicazione
        chiamata <quote>Window Manager</quote>.  Ci sono dozzine di window
        manager disponibili per X; <application>AfterStep</application>,
        <application>Blackbox</application>, <application>ctwm</application>,
        <application>Enlightenment</application>,
        <application>fvwm</application>, <application>Sawfish</application>,
        <application>twm</application>, <application>Window
          Maker</application>, ed altri.  Ciascuno di questi window manager
        fornisce un diverso aspetto ed ambiente; alcuni di questi supportano i
        <quote>virtual desktop</quote>; alcuni consentono di avere delle
        combinazioni di tasti predefinite per gestire il desktop; altri hanno
        un pulsante <quote>Start</quote> o simile; altri possono avere dei
        <quote>temi</quote>, permettendo un cambio completo di look-and-feel
        applicando un nuovo tema.  Questi window manager, e molti altri,
        sono disponibili nella categoria <filename>x11-wm</filename>
        dei Port.</para>

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

      <para>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
        (<application>sawfish</application>) ha un file di configurazione
        scritto in un dialetto del linguaggio Lisp.</para>

      <note>
        <title>Regole di fuoco</title>

        <para>Un'altra capacit&agrave; che il window manager deve avere &egrave;
          la cosiddetta <quote>focus policy</quote>, 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 deve indicare univocamente
          quale finestra &egrave; attiva in un determinato momento.</para>

        <para>Una Focus policy familiare &egrave; chiamata
          <quote>click-to-focus</quote>.  Questo &egrave; il modello
          utilizzato da Microsoft Windows, nel quale una finestra
          diventa attiva dopo aver ricevuto un click del mouse.</para>

        <para>X non supporta alcuna focus policy particolare.  Invece
          il Window Manager controlla quale finestra &egrave; 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.</para>

        <para>Le regole di fuoco pi&ugrave; popolari sono:</para>

        <variablelist>
          <varlistentry>
            <term>focus-follows-mouse (o fuoco-segue-mouse)</term>

            <listitem>
              <para>La finestra su cui si trova il puntatore &egrave; quella
                che riceve il fuoco.  Questa potrebbe non essere
                necesariamente la finestra che si trova davanti a tutte
                le altre.  Il fuoco cambia se si punta un'altra
                finestra, e non c'&egrave; modo di fare click con il
                mouse.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>sloppy-focus</term>

            <listitem>
              <para>Questa policy &egrave; 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&agrave; il fuoco, e la pressione di un
                tasto verr&agrave; semplicemente ignorata.  Con Sloppy-focus, il
                fuoco &egrave; solamente cambiato quando il cursore entra in
                una nuova finestra, e non quando si esce dalla finestra
                corrente.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>click-to-focus</term>

            <listitem>
              <para>La finestra attiva &egrave; scelta dal click del mouse.  La
                finestra potrebbe essere allora <quote>alzata</quote>, 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.</para>
            </listitem>
          </varlistentry>
        </variablelist>

        <para>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.</para>
      </note>
    </sect2>

    <sect2>
      <title>I Widget</title>

      <para>L'approccio di X di fornire strumenti e non regole si estende
        anche ai widget, cio&egrave; ai contenitori contenenti, sullo schermo,
        le applicazioni.</para>

      <para><quote>Widget</quote> &egrave; 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&igrave; via.  Windows li chiama invece
        <quote>controlli</quote>.</para>

      <para>Sia Microsoft Windows che Apple MacOS hanno delle regole strette
        per i widget.  Gli sviluppatori devono assicurarsi che tutte le loro
        applicazioni condividano lo stesso stile.  Con X, non si &egrave;
        sentito un particolare bisogno di obbligare ad avere un particolare
        stile grafico, o settare widgets a cui aderire.</para>

      <para>Come risultato, non aspettatevi applicazioni per X che abbiano
        lo stesso stile.  Ci sono alcuni widgets popolari e le loro variazioni,
        come l'originale Athena sviluppato dall'MIT,
        <application>Motif</application> (dal quale &egrave; stato modellato il
        widget presente su Microsoft windows, tutti angoli a doppio livello e
        tre sfumature di grigio), <application>OpenLook</application>, ed
        altri.</para>

      <para>Molte applicazioni nuove di X di oggi usano un widget con
        sembianze moderne, probabilmente Qt, usato da
        <application>KDE</application>, o <application>GTK</application>,
        usato da <application>GNOME</application>. Nel rispetto di questo,
        c'&egrave; un accenno di convergenza nell'aspetto dei desktop UNIX,
        il che facilita le cose ai nuovi utenti.</para>
    </sect2>
  </sect1>

  <sect1 id="x-install">
    <title>Installazione di XFree86</title>

    <para>Prima di installare XFree86, decidi quale versione utilizzare.
       <application>XFree86 3.X</application> &egrave; un ramo di mantenimento
       dello sviluppo di XFree86.  &Egrave; molto stabile, e supporta un grande
       numero di schede grafiche.  Ad ogni modo, non vi &egrave; alcuno sviluppo
       ulteriore effettuato su questo software.
       <application>XFree86 4.X</application> &egrave; un redesign completo del
       sistema con molte nuove features come un miglior supporto per i font
       e l'antialiasing. Sfortunatamente questa nuova architettura fa s&igrave;
       che i driver per le schede video debbano essere riscritti, e alcune
       delle schede video meno recenti che erano supportate nella 3.X &egrave;
       possibile che non siano ancora supportate nella 4.X</para>

    <para>Il programma di installazione di FreeBSD offre l'opportunit&agrave;
      di installare e configurare XFree86 3.3.6 durante l'installazione
      (trattato in <xref linkend="x-server">).  Per utilizzare
      <application>XFree86 4.X</application>, aspetta finch&eacute; il
      sistema base &egrave; stato installato, quindi installa XFree86.
      Per esempio, per compilare ed installare
      <application>XFree86 4.X</application> dai port:

    <screen>&prompt.root; <userinput>cd /usr/ports/x11/XFree86-4</userinput>
&prompt.root; <userinput>make all install clean</userinput></screen>

    <para>Alternativamente, <application>XFree86 4.X</application> pu&ograve;
      essere installato da package binario con il comando
      <command>pkg_add</command> direttamente dai binari FreeBSD forniti sul
      <ulink url="http://www.xfree86.org/">sito di XFree86</ulink>.</para>

    <para>Il resto del capitolo spiegher&agrave; come configurare XFree86,
      e come settare un ambiente desktop produttivo.</para>
  </sect1>

  <sect1 id="x-config">
    <title>XFree86 Configuration</title>

    <para>Traduzione in corso</para>
  </sect1>

  <sect1 id="x-fonts">
    <title>Using Fonts in XFree86</title>

    <para>Traduzione in corso</para>
  </sect1>

  <sect1 id="x-xdm">
    <title>The X Display Manager</title>

    <para>Traduzione in corso</para>
  </sect1>

  <sect1 id="x11-wm">
    <title>Desktop Environments</title>

    <para>Traduzione in corso</para>
  </sect1>
</chapter>

<!--
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->
