[ precedente ] [ Contenuti ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ A ] [ B ] [ C ] [ D ] [ successivo ]


Debian Tutorial
Capitolo 10 - Il sistema X Window


Questo capitolo descrive il sistema ad interfaccia grafica X Window. Si presume che si sia già configurato con successo X come descritto nel manuale di installazione (il manuale di installazione non è ancora stato scritto; per adesso si dovrà utilizzare l'XFree86 HOWTO, il contenuto della directory /usr/doc/X11 e questo capitolo). Una volta che si è installato X, si può entrare nell'ambiente X, digitando startx o mediante xdm, a seconda delle scelte fatte durante la configurazione. (N.d.T.: adesso il manuale di installazione di etch è stato scritto e il sistema X standard è Xorg.)


10.1 Avviare l'ambiente X

Ci sono due modi per avviare X. Il primo è quello di farlo manualmente quando si desidera utilizzarlo. Per farlo, fare il login in una delle console testuali e digitare startx. Questo comando avvierà X e passerà sulla sua console virtuale.

Il secondo (e raccomandato) metodo di usare X, è tramite xdm, o X Display Manager. Semplicemente, xdm fornisce un gradevole prompt di login grafico sulla console virtuale di X (probabilmente VC 7) e si fa il login lì.

In modo predefinito, entrambi i metodi avviano anche un xterm, che è una piccola finestra contenente un prompt di shell. Al prompt di shell si può digitare qualsiasi comando, proprio come se si fosse su una VC testuale. Così si possono seguire tutti gli esempi di questo tutorial utilizzando xterm; l'unica differenza tra un xterm e una console testuale è che non si deve fare il login nell'xterm, dato che si è già fatto il login su X.

Ci sono anche diverse cose che si possono fare solo in X, che sono comprese in questo capitolo.

Una nota: l'xterm predefinito ha un carattere molto piccolo. Se si possiede un monitor piccolo o una risoluzione molto alta o una vista non buona, si vorrà porvi rimedio. Si segua questo procedimento:

  1. Spostare il puntatore del mouse al centro della finestra xterm.

  1. Premere il tasto Control e il pulsante destro del mouse contemporaneamente. Verrà mostrato un menu dei tipi di carattere.

  1. Puntare sul tipo di carattere desiderato e rilasciare il pulsante del mouse.


10.2 Introduzione: cos'è X

Una GUI (Graphical User Interface) è una componente essenziale dei sistemi operativi Windows e Mac. È fondamentalmente impossibile scrivere un'applicazione per questi "sistemi operativi" che non utilizzi una GUI e i sistemi medesimi non possono essere usati efficacemente dalla riga di comando. GNU/Linux è più modulare, cioè, composto da molte piccole componenti indipendenti che possono essere utilizzate o meno in base alle proprie necessità e preferenze. Una di queste componenti è il sistema X Window, o semplicemente X[14].

X stesso è un mezzo con cui i programmi comunicano con mouse e scheda video, senza conoscere quale tipo di mouse e scheda video si abbia. Cioè, è una astrazione dell'hardware grafico. Le applicazioni utente comunicano con X nel suo linguaggio; X poi traduce nel linguaggio del proprio hardware particolare. Ciò significa che i programmi verranno scritti una sola volta e funzioneranno su qualsiasi computer.

Nel gergo di X, il programma che comunica con l'hardware è il server X. Le applicazioni utente che richiedono all'X server di mostrare finestre o grafica sullo schermo, sono chiamate client X. Il server X include un driver video, così si deve avere un server X che corrisponda alla propria scheda video.

Il server X non fornisce nessuna delle caratteristiche che ci si aspetta da una GUI, tipo il ridimensionamento e riposizionamento di finestre. Un client X particolare, chiamato window manager, disegna bordi e barre dei titoli per le finestre, ridimensiona e riposiziona le finestre e fornisce strumenti per avviare altri client X da un menu. Window manager specifici possono avere caratteristiche addizionali.

I window manager disponibili su un sistema Debian includono fvwm, fvwm2, icewm, afterstep, olvwm, wmaker, mwm, twm, enlightenment e altri. Probabilmente si vorrà provarli tutti e scegliere poi il proprio preferito. (Per informazioni sui window manager e altre cose simpatiche su X, X11.org è un sito carino.

Né il server X, né il window manager forniscono un file manager; cioè, non ci sono finestre contenenti icone per i propri file e directory. Si può lanciare un file manager come applicazione separata; ce ne sono diversi disponibili, ma purtroppo non ce ne sono ancora di validi basati su icone. Il progetto per il desktop GNOME sta sviluppando un file manager basato su icone e altre facilitazioni della GUI. Si veda la pagina web del progetto GNOME per le ultime novità su di esso.

Un'altra caratteristica di X è la sua trasparenza rispetto alla rete, col significato che ai client X non interessa se sono connessi ad un server X sulla stessa macchina o ad un server X da qualche altra parte sulla rete. In pratica, ciò significa che si può avviare un programma su una macchina remota più potente, mostrandolo sul proprio computer desktop.


10.3 Operazioni di base di X


10.3.1 Il mouse

Il mouse in X funziona esattamente come il mouse su altri sistemi, eccetto per il fatto che possiede tre pulsanti. Se il proprio mouse ne possiede solo due, si può simulare il terzo pulsante (quello in mezzo), premendo contemporaneamente gli altri due. Ciò può risultare macchinoso e noioso, per cui investire qualche euro in un mouse a tre pulsanti, non è una cattiva idea. Dovrebbero essere disponibili presso qualsiasi rivenditore di computer.

I pulsanti sono numerati da sinistra a destra, presumendo che si abbia un mouse "destrorso"; allora il pulsante uno è il sinistro, due quello centrale, tre quello destro. Si può verificare sia il numero che la posizione nella documentazione.

X possiede un semplice metodo integrato per il copia e incolla. Per selezionare il testo da copiare, si preme e si trascina con il tasto sinistro del mouse. Ciò selezionerà il testo da copiare, supponendo che l'applicazione che si sta utilizzando possieda il supporto per il copia-incolla. Per incollare il testo, si preme il tasto centrale del mouse in una applicazione X differente. Per esempio, se si riceve una e-mail contenente un URL, si può selezionarlo con il pulsante sinistro, poi premere il tasto centrale nella "barra degli indirizzi" del browser web per copiarcelo.


10.3.2 Client X

I programmi che comunicano con il server X sono chiamati client X. Molti di essi richiederanno al server X di mostrare finestre sullo schermo.

Si può avviare un client X allo stesso modo con cui si avvia qualsiasi altro programma Debian. Semplicemente, si digiti il nome del client sulla riga di comando. Si provi digitando xterm dentro un xterm esistente: un nuovo client xterm apparirà sullo schermo.

Si potrà notare che l'xterm originale è ora inutilizzabile dato che la shell resta in attesa che venga terminato il secondo xterm. Per evitare questo problema, si può avviare il client X sullo sfondo: aggiungere un & dopo il nome del comando, così: xterm &. Se ci si dimentica, si può posizionare un processo in esecuzione sullo sfondo. Prima sospendere il processo con C-z e poi metterlo sullo sfondo con il comando bg.

Se si usa un comando spesso, solitamente il proprio window manager fornisce il modo per inserirlo in un comodo menu grafico.


10.3.3 Risoluzione dei problemi

Qualche volta quando si lancia un client X tramite un menu grafico, non si riuscirà a vedere nessun messaggio di errore se questo fallisce. Si possono trovare tutti i messaggi di errore nel file ~/.xsession-errors.


10.3.4 Abbandonare l'ambiente X

Per abbandonare X è necessario usare un menu. Sfortunatamente per i principianti, questo cambia a seconda del window manager e per la maggior parte di questi, può essere configurato in vari modi. Se è presente un menu evidente, si cerchi un comando del tipo "Uscire" o "Chiudere il window manager". Se non si vede un menu, si provi premendo ciascuno dei pulsanti del mouse sullo sfondo dello schermo. Se ogni altro tentativo fallisce, si può terminare forzatamente il server X premendo C-A-Backspace. Terminare forzatamente il server provocherà la perdita di tutti i dati non salvati delle applicazioni aperte in quel momento.


10.4 Personalizzare l'avvio di X

Quando si avvia X, Debian esegue alcuni script di shell che avviano il window manager e altri client X. In modo predefinito verranno avviati un window manager, una xconsole e un xterm.

Per personalizzare l'avvio di X, il file /etc/X11/config deve contenere la riga allow-user-xsession. Se non c'è, si diventi root e si aggiunga questa riga. Poi si rifaccia il login con il proprio nome utente e si prosegua col tutorial. [15]

Per avviare i client che si desiderano all'avvio di X, creare uno script di shell eseguibile chiamato .xsession nella propria directory home.

  1. touch ~/.xsession

    Creare il file.

  1. chmod u+x ~/.xsession

    Rendere il file eseguibile.

Una volta che .xsession è stato creato, è necessario modificarlo con il proprio editor di testo preferito per fare alcune cose utili. Si può far fare tutto quello che si vuole a questo script. Comunque, quando il processo dello script termina, anche X termina.

In pratica questo significa che spesso lo script finirà con una chiamata a exec. Qualsiasi programma sarà l'oggetto di exec sostituirà il processo di script con se stesso, così i comandi che si trovano dopo la riga exec verranno ignorati. Il programma oggetto di exec diventerà il nuovo "proprietario" del processo di script, il che significa che X terminerà quando questo nuovo processo di programma termina.

Supponiamo si sia messa alla fine del proprio file .xsession la riga: exec fvwm. Ciò significa che il window manager fvwm verrà eseguito quando viene avviato X. Quando si uscirà da fvwm, terminerà anche la sessione di X e tutti gli altri client saranno chiusi. Non è obbligatorio utilizzare un window manager; si può usare exec xterm, in tal caso, digitando exit in quel particolare xterm, si provocherebbe l'arresto dell'intera sessione X.

Se si vogliono avviare altri client prima di usare exec, si dovrà avviarli sullo sfondo. Altrimenti .xsession attenderà fino a che ciascun client è attivo, poi procederà alla riga seguente. Si veda la sezione precedente sull'esecuzione di job sullo sfondo (praticamente, si mette il carattere & alla fine; per esempio xterm &).

Tuttavia è possibile trarre vantaggio da questo comportamento. Se si vuole avviare un comando alla fine della propria sessione X, si può fare sì che il proprio .xsession avvii un window manager o qualcosa di simile e attenda il suo arresto. Cioè, eliminare exec e &, lasciando fvwm da solo. Poi mettere i comandi che si desiderano dopo fvwm.

Probabilmente è di aiuto guardare qualche esempio di file .xsession. In tutti gli esempi, si sostituisca fvwm con il proprio window manager preferito.

Il più semplice .xsession avvia soltanto un window manager:

     exec fvwm

Questo avvia fvwm e la sessione X termina quando si esce da fvwm. Se si usa senza exec, ogni cosa appare nello stesso modo, ma dietro le quinte .xsession rimane funzionante in attesa di fvwm e finisce solo dopo la fine di fvwm. Usare exec è leggermente meglio perché fvwm sostituisce .xsession invece di lasciarlo in attesa. Si può usare il comando ps o top per verificarlo.

Un file .xsession più utile avvia alcuni client prima dell'avvio del window manager. Per esempio, si potrebbero volere alcuni xterm e un xclock ogni volta che si avvia X. Nessun problema:

     xterm &
     xterm &
     xclock &
     exec fvwm

Due xterm e un xclock si avviano sullo sfondo e poi viene lanciato il window manager. Quando si esce dal window manager, si esce anche da X.

Si può provare senza porre sullo sfondo i programmi, solo per vedere cosa succede. Si faccia:

     xterm
     xclock
     exec fvwm

Si avvia un xterm e attende che si esca da esso. Poi si avvia xclock; si deve uscire da xclock prima che fvwm si avvii. I comandi sono eseguiti in sequenza, dato che lo script attende ogni volta il termine di ciascuno.

Si può utilizzare l'esecuzione sequenziale a proprio vantaggio. Forse si vuole tenere traccia di quando si finisce di lavorare ogni giorno:

     xterm &
     xclock &
     fvwm
     date >> ~/ora-di-logout

Questo avvia un xterm e un xclock, poi avvia fvwm e attende che esso termini. Quando si esce da fvwm, si muove all'ultima riga, che aggiunge la data e ora corrente al file ~/ora-di-logout.

Infine si potrebbe avere un programma diverso dal window manager che determina l'uscita da X:

     xclock &
     fvwm &
     exec xterm

Questo script avvia xclock e fvwm sullo sfondo e poi sostituisce se stesso con un xterm. Quando si esce da xterm, finisce anche la sessione X.

Il modo migliore per imparare a usare .xsession è quello di provare a fare un po' di cose. Assicurarsi, come già detto, di usare chmod per renderlo eseguibile; questo è un errore molto comune.


[ precedente ] [ Contenuti ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ A ] [ B ] [ C ] [ D ] [ successivo ]


Debian Tutorial

30 settembre 2007

Havoc Pennington hp@debian.org