Una serie di programmi di utilità facilita e rende confortevole l'utilizzo di X. La tabella 71.1 elenca i programmi a cui si accenna in questo capitolo.
Programma | Descrizione |
xterm | Terminale. |
nxterm | Terminale. |
rxvt | Terminale. |
xclipboard | Facilita le operazioni di taglia-copia-incolla. |
xlsfonts | Elenco dei tipi di carattere. |
xfontsel | Visualizzazione dell'aspetto dei tipi di carattere. |
xfd | Mappa dei caratteri. |
xwininfo | Informazioni su una finestra. |
xdpyinfo | Informazioni sulla stazione grafica. |
xset | Imposta alcune caratteristiche del server. |
xsetroot | Imposta le caratteristiche della finestra principale. |
xbiff | Avvisa della presenza di messaggi di posta elettronica. |
xclock | Orologio configurabile. |
xcalc | Calcolatrice. |
Il primo programma da dover conoscere quando si utilizza X è quello che consente di gestire un terminale a caratteri attraverso una finestra. Il programma utilizzato normalmente per questo scopo è xterm
che tra tutti è il più completo. In alternativa si possono usare programmi simili, a volte con meno funzionalità (come nxterm
e rxvt
), in modo da non sprecare inutilmente risorse.
Il comportamento di un terminale a finestra non è esattamente uguale a quello di una console; ci si accorge subito che i soliti programmi non rispondono alla tastiera nello stesso modo cui si era abituati. Quando ciò accade, vale almeno la pena di provare tutti i programmi di terminale a finestra a disposizione, per determinare quale si comporta nel modo più confacente alle proprie esigenze.
La sintassi semplificata di xterm
, nxterm
e rxvt
è la seguente:
xterm [<opzioni>] [
|
nxterm [<opzioni>] [
|
rxvt [<opzioni>] [
|
Quando il programma viene avviato senza l'opzione
, viene eseguito quanto contenuto nella variabile -
eSHELL
e se manca viene utilizzato /bin/sh
.
Se invece si utilizza l'opzione
, si può specificare il programma da eseguire nella finestra. Ciò può essere utile per preparare dei comandi già pronti all'interno di menu di altri programmi o del gestore di finestre stesso.
-
e
Una cosa importante da sottolineare è che le dimensioni della geometria di una finestra di terminale si esprimono in caratteri e non in punti come si fa di solito.
$
xterm
-
font 5x8 -
geometry =132x30+0+0
Avvia una finestra di terminale utilizzando caratteri molto piccoli con una dimensione di 30 righe per 132 colonne, posizionata a partire dall'angolo superiore sinistro dello schermo.
$
xterm
-
e top
Avvia una finestra di terminale di dimensioni predefinite (80x25) con il programma top
. Quando l'esecuzione di top
viene conclusa, la finestra del terminale si chiude.
Il server X offre un modesto supporto alla gestione delle operazioni di taglia-copia-incolla. Si tratta esclusivamente delle stringhe (alfanumeriche), per cui tutto si limita alla possibilità di copiare una parte di testo da una finestra di terminale a un'altra.
L'operazione di copia avviene utilizzando il mouse, premendo il tasto sinistro e trascinando in modo da evidenziare il testo desiderato. Per incollare in un'altra applicazione occorre fare in modo che questa passi in primo piano (cioè che la sua finestra diventi quella attiva), poi basta premere il secondo tasto (normalmente è quello centrale) e il testo viene inserito come se venisse digitato, a partire dalla posizione del cursore. *1* *2*
Ci sono anche altri modi per evidenziare un testo, ma quello che conta è che il testo selezionato per la copia deve rimanere evidenziato fino al momento in cui si intende incollare quel testo.
Molti programmi sono in grado di utilizzare questo servizio offerto da X, ma non tutti, specialmente quelli nati per essere compatibili con sistemi operativi molto differenti. Alcuni programmi hanno la necessità di gestire in proprio le funzionalità relative alle operazioni di taglia-copia-incolla, soprattutto quando si tratta di testo formattato, immagini e altro. In questi casi, vengono utilizzati dei meccanismi di comunicazione tra i processi indipendenti dal sistema. Di conseguenza, possono comunicare tra loro solo i processi predisposti per quel particolare sistema di comunicazione. Questo dovrebbe chiarire il motivo per cui il trasferimento di informazioni tra un'applicazione e l'altra, attraverso operazioni di taglia-copia-incolla, funziona solo in alcune situazioni e tra particolari gruppi di programmi.
xclipboard [<opzioni>] |
xclipboard
è un programma che facilita l'utilizzo del servizio di taglia-copia-incolla fornito dal server X. Si tratta di una serie di pagine su cui è possibile scrivere e incollare del testo attraverso il meccanismo normale di X.
Figura 71.1:
xclipboard
permette di utilizzare un'area transitoria per il taglia-copia-incolla.
Sotto questo aspetto si tratta di niente di più che una specie di programma per la creazione e modifica di testo. Tuttavia, l'accorgimento della gestione di pagine separate lo rende più pratico per l'uso del taglia-copia-incolla.
Il programma mostra un menu molto semplice composto da alcune voci:
Quit
termina l'esecuzione;
Delete
svuota il contenuto della pagina attiva;
New
crea una nuova pagina;
Save
salva la pagina corrente in un file di testo normale;
Next
visualizza la pagina successiva;
Prev
visualizza la pagina precedente.
Per incollare del testo in un'applicazione, utilizzando quanto conservato con questo programma, si deve selezionare la pagina che interessa e poi si deve evidenziare il testo desiderato. Quindi si incolla nel modo solito.
Nel capitolo introduttivo a X si è accennato all'organizzazione dei nomi delle fonti tipografiche (usate per la visualizzazione sullo schermo). In particolare, quando i programmi fanno riferimento a una fonte, è consentito normalmente l'uso di simboli jolly (o metacaratteri). Si tratta dell'asterisco e del punto interrogativo e hanno lo stesso significato che gli si attribuisce quando vengono usati per i nomi dei file: l'asterisco corrisponde a qualunque sequenza di caratteri, mentre il punto interrogativo corrisponde a un solo carattere qualsiasi.
Quando attraverso la riga di comando si deve fare riferimento a un modello, cioè un nome che fa uso di simboli jolly, è bene ricordare che la shell interpreta questi simboli se non vengono protetti. Nel caso delle shell derivate da quella di Bourne, basta racchiudere il nome tra apici singoli.
La maggior parte dei programmi, quando deve fare riferimento a una fonte tipografica attraverso la riga di comando, riconosce l'opzione
(abbreviabile anche con -
font <tipo-di-carattere>
).
-
fn
xlsfonts [<opzioni>] |
xlsfonts
elenca le fonti tipografiche a disposizione in base a quanto specificato attraverso le opzioni. L'opzione più importante è
, attraverso la quale è possibile indicare un gruppo di fonti.
-
font <modello>
$
xlsfonts
Elenca tutte le fonti tipografiche a disposizione.
$
xlsfonts
-
font '*'
Esattamente come nell'esempio precedente, solo che viene indicato espressamente un modello che si riferisce a tutte le fonti tipografiche.
$
xlsfonts
-
font '-
courier-
*'
Elenca tutte le fonti tipografiche il cui nome inizia per
.
-
courier-
xfontsel [<opzioni>] |
xfontsel
è un programma che consente di conoscere quali sono le fonti tipografiche a disposizione. È comodo da usare, soprattutto perché fornisce la possibilità di selezionare la fonte attraverso la specificazione delle caratteristiche desiderate per mezzo di un sistema di menu.
Figura 71.2:
Attraverso xfontsel
si possono visualizzare i tipi di carattere a disposizione.
xfd [<opzioni>]
|
xfd
visualizza l'aspetto e la codifica di una fonte tipografica che deve essere determinata obbligatoriamente dalle opzioni. Di conseguenza, l'utilizzo dell'opzione
è obbligatoria.
-
font
Figura 71.3:
Attraverso xfd
si può visualizzare l'insieme di caratteri corrispondente a una certa fonte tipografica.
Le informazioni sullo stato di una finestra possono essere utili sia a titolo diagnostico, sia per poter riprodurre le stesse condizioni attraverso la configurazione di opzioni o di risorse.
Le informazioni su un server possono essere interessanti, in particolare quando vengono richieste a distanza.
xwininfo [<opzioni>] |
xwininfo
permette di avere tutte le notizie possibili su una finestra determinata. Emette il risultato attraverso lo standard output, quindi conviene avviare questo programma da una finestra di terminale, se non si intende ridirigere l'output.
|
Permette di indicare esplicitamente la finestra della quale si vogliono le informazioni, attraverso il codice esadecimale che l'identifica.
|
Emette le informazioni sulla finestra principale cioè la superficie grafica su cui si collocano le finestre normali.
|
Richiede che gli identificatori delle finestre siano emessi in forma decimale, mentre normalmente vengono mostrati in esadecimale.
|
Emette l'indicazione della finestra principale, di quella genitrice e delle figlie di quella specificata. Permette quindi di avere una visione della dipendenza che c'è tra le finestre, con particolare attenzione alle figlie.
|
Emette l'indicazione della finestra principale, di quella genitrice, delle figlie e delle successive, ricorsivamente. Funziona in maniera simile all'opzione
, con la differenza che mostra tutte le discendenze.
-
children
|
Emette molte informazioni riferite alla finestra. Corrisponde al comportamento predefinito, quando non si specificano opzioni.
|
Emette tutte le informazioni possibili.
$
xwininfo
[Invio]
xwininfo: Please select the window about which you would like information by clicking the mouse in that window. |
Il programma invita a utilizzare il mouse per indicare una finestra della quale si vogliono conoscere le informazioni.
xwininfo: Window id: 0x2000002 "rxvt" Absolute upper-left X: 272 Absolute upper-left Y: 165 Relative upper-left X: 0 Relative upper-left Y: 0 Width: 494 Height: 329 Depth: 8 Visual Class: PseudoColor Border width: 0 Class: InputOutput Colormap: 0x26 (installed) Bit Gravity State: ForgetGravity Window Gravity State: NorthWestGravity Backing Store State: NotUseful Save Under State: no Map State: IsViewable Override Redirect State: no Corners: +272+165 -34+165 -34-106 +272-106 -geometry 80x25-29+143 |
xdpyinfo [<opzioni>] |
xdpyinfo
permette di avere tutte le informazioni possibili su un particolare server X, eventualmente anche remoto.
|
Permette di definire esplicitamente le coordinate necessarie a raggiungere il server che si desidera interrogare.
$
xdpyinfo dinkel.brot.dg:0
[Invio]
name of display: dinkel.brot.dg:0.0 version number: 11.0 vendor string: The XFree86 Project, Inc vendor release number: 3200 maximum request size: 4194300 bytes motion buffer size: 256 bitmap unit, bit order, padding: 32, LSBFirst, 32 image byte order: LSBFirst number of supported pixmap formats: 2 supported pixmap formats: depth 1, bits_per_pixel 1, scanline_pad 32 depth 8, bits_per_pixel 8, scanline_pad 32 keycode range: minimum 9, maximum 117 focus: window 0x1800002, revert to Parent number of extensions: 15 BIG-REQUESTS DOUBLE-BUFFER MIT-SCREEN-SAVER MIT-SHM MIT-SUNDRY-NONSTANDARD RECORD SHAPE SYNC XC-MISC XFree86-DGA XFree86-Misc XFree86-VidModeExtension XInputExtension XKEYBOARD XTEST default screen number: 0 number of screens: 1 screen #0: dimensions: 800x600 pixels (271x203 millimeters) resolution: 75x75 dots per inch depths (2): 1, 8 root window id: 0x2a depth of root window: 8 planes number of colormaps: minimum 1, maximum 1 default colormap: 0x26 default number of colormap cells: 256 preallocated pixels: black 0, white 1 options: backing-store YES, save-unders YES largest cursor: 64x64 current input event mask: 0x58003d KeyPressMask ButtonPressMask ButtonReleaseMask EnterWindowMask LeaveWindowMask SubstructureNotifyMask SubstructureRedirectMask PropertyChangeMask number of visuals: 6 default visual id: 0x20 visual: visual id: 0x20 class: PseudoColor depth: 8 planes available colormap entries: 256 red, green, blue masks: 0x0, 0x0, 0x0 significant bits in color specification: 6 bits visual: visual id: 0x21 class: DirectColor depth: 8 planes available colormap entries: 8 per subfield red, green, blue masks: 0x7, 0x38, 0xc0 significant bits in color specification: 6 bits ... |
Il listato che si ottiene è molto lungo, ma le informazioni più importanti possono essere ritrovate nella prima parte. In particolare si nota la dimensione (800x600), la risoluzione (75x75 dpi), la profondità di colori (8 bit) e di conseguenza il numero di colori a disposizione (256).
La configurazione del funzionamento dello schermo riguarda il tipo di interazione tra l'utente e i programmi (tastiera, mouse, salva-schermo), e il tipo di superficie grafica, ovvero la finestra principale.
xset [<opzioni>] |
xset
permette di definire e leggere una grande quantità di impostazioni che riguardano la stazione grafica (il server X). Le opzioni particolari di questo programma non utilizzano il trattino tradizionale, o quantomeno non nel modo solito. Quando l'utente che ha impostato la configurazione termina la sua sessione di lavoro attraverso un logout, tutto torna al suo valore precedente.
|
Permette di definire esplicitamente le coordinate necessarie a raggiungere il server su cui si desidera intervenire.
b {<volume> <tono> <durata>} | {on|off} |
Definisce il suono dell'avvisatore acustico. Utilizzando gli argomenti on
oppure off
si attiva o si disattiva l'avvisatore acustico.
m [{<accelerazione> [<soglia>]} | default ] |
Permette di definire il valore di accelerazione e di soglia dello spostamento del dispositivo di puntamento. Se non viene indicato alcun valore, oppure se viene utilizzato l'argomento default
, si ripristinano le impostazioni predefinite. L'accelerazione può essere stabilita utilizzando un valore intero e genera uno spostamento pari al suo valore moltiplicato per la velocità effettiva dello spostamento, quando questa supera il valore di soglia specificato. In pratica, se lo spostamento è al di sotto della soglia, il movimento del puntatore è lento, se questa viene superata, lo spostamento risulta accelerato.
r [on|off] |
Abilita o disabilita la ripetizione del tasto premuto a lungo.
s [{<durata-inattività> [<durata-esposizione>]} | <parola-chiave> ] |
Questa opzione permette l'utilizzo di due argomenti numerici o di una parola chiave. Lo scopo è quello di configurare il comportamento del salva-schermo, o screen saver. La durata di inattività rappresenta il tempo, in secondi, che deve trascorrere prima che si attivi il salva-schermo; la durata di esposizione riguarda il caso in cui si utilizzi un'immagine al posto dello schermo nero, e rappresenta il tempo in cui questa può rimanere ferma. Segue l'elenco e la descrizione delle parole chiave.
default
Pone tutti i valori a quanto stabilito in modo predefinito.
{on|off}
Attiva o disattiva la modalità.
{blank|noblank}
In alcuni sistemi, non è possibile o non si desidera oscurare completamente lo schermo. blank
utilizza l'oscuramento, mentre noblank
utilizza un'immagine e in tal caso si fa uso della durata di esposizione per sapere quanto tempo questa immagine può stare ferma.
activate
Attiva immediatamente il salva-schermo.
reset
Disattiva il salva-schermo se è attivo.
q |
Permette di ottenere le informazioni relative a tutte le impostazioni a cui può accedere xset
.
$
xset b 100 1000 100
Imposta un suono acuto e breve per l'avvisatore acustico.
$
xset m 10 5
Imposta un mouse veloce.
$
xset m 4 2
Imposta un mouse normale.
$
xset s 30 s blank
Fissa la durata di attesa per l'attivazione del salva-schermo a 30 secondi e stabilisce che deve trattarsi di uno schermo nero.
---------
$
xset q
[Invio]
Keyboard Control: auto repeat: on key click percent: 0 LED mask: 00000000 auto repeat delay: 500 repeat rate: 5 auto repeating keys: 00feffffdffffbbf fa9fffffffdf3d00 0000000000000000 0000000000000000 bell percent: 100 bell pitch: 200 bell duration: 1000 Pointer Control: acceleration: 4/1 threshold: 4 Screen Saver: prefer blanking: yes allow exposures: yes timeout: 30 cycle: 1 suspend time: 900 off time: 1800 Colors: default colormap: 0x26 BlackPixel: 0 WhitePixel: 1 Font Path: /usr/X11R6/lib/X11/fonts/misc/,/usr/X11R6/lib/X11/fonts/75dpi/ Bug Mode: compatibility mode is disabled |
Visualizza la configurazione corrente.
xsetroot [<opzioni>] |
xsetroot
permette di gestire le caratteristiche della, finestra principale, root, ovvero la superficie grafica su cui si appoggiano le finestre normali.
|
Permette di definire esplicitamente le coordinate necessarie a raggiungere il server su cui si desidera intervenire.
|
Ripristina l'impostazione predefinita.
|
Permette di definire un'immagine diversa per il puntatore che appare quando questo si trova sulla superficie della finestra principale (root). Per realizzare questi file si può usare il programma bitmap
(vedere bitmap(1)), e in particolare, il file della maschera è opportuno sia completamente nero.
|
Permette di definire una piccola immagine da usare ripetitivamente come fondale.
|
Rende lo sfondo grigio.
|
Definisce il colore dello sfondo.
$
xsetroot
-
solid gold
Colora lo sfondo con la tinta gold
.
Il controllo dell'utilizzo delle risorse di sistema può essere fatto attraverso programmi molto semplici che però hanno il pregio dell'immediatezza espressiva.
xidle [<opzioni>] |
xidle
consente di visualizzare un grafico dell'inattività di sistema.
xload [<opzioni>] |
xload
consente di visualizzare un grafico del carico di sistema.
xmem [<opzioni>] |
xmem
consente di visualizzare un grafico della memoria disponibile.
A volte si ha la necessità di concludere l'esecuzione di un'applicazione in modo più o meno violento perché questa è sfuggita al controllo. Di solito, per ottenere questo risultato, si utilizza l'invio di un segnale attraverso una shell. Quando si tratta di applicazioni per X si può utilizzare una tecnica in più: si comunica al server di terminare la connessione con l'applicazione che si desidera concludere. Ciò si può ottenere attraverso una funzione fornita dal gestore di finestre o da un programma apposito: xkill
.
xkill [<opzioni>] |
xkill
permette di eliminare un programma funzionante in una finestra del sistema grafico X. Quando viene utilizzato senza argomenti, xkill
trasforma il puntatore in un'immagine speciale (solitamente si tratta di un teschio nero) e permette di indicare direttamente la finestra da eliminare. Basta un clic e si ottiene il risultato.
Alcuni programmi, per quanto semplici, sono di grande utilità, e per questo è opportuno conoscerne almeno l'esistenza.
xbiff [<opzioni>] |
xbiff
è un programma molto semplice che si limita ad avvisare quando il file utilizzato per ricevere la posta elettronica risulta contenere qualcosa. Il programma è altamente configurabile, sia attraverso le opzioni che attraverso le risorse. In particolare, vale la pena di considerare l'opzione
, con cui si può indicare a -
file <file>xbiff
di controllare un file differente rispetto a quello predefinito.
Figura 71.4:
xbiff
quando il file della posta elettronica è vuoto.
Figura 71.5:
xbiff
quando ci sono messaggi di posta elettronica.
Alcuni gestori di finestre forniscono già questo tipo di informazione; in questi casi non serve utilizzare xbiff
.
xclock [<opzioni>] |
xclock
è un programma molto semplice che si occupa di visualizzare l'ora. Dal momento che è possibile visualizzare l'ora in modo digitale (numerico), l'opzione
ha significato e può essere utile per cambiare l'aspetto dei caratteri.
-
font
Figura 71.6:
xclock
-
digital -
font '-
adobe-
times-
bold-
i-
*-
-
24-
*'
|
Mostra l'ora in modo analogico.
|
Mostra l'ora in forma numerica.
*analog: {on|off} |
Mostra l'ora in modo analogico (on
) oppure digitale (off
).
Alcuni gestori di finestre forniscono già un orologio attraverso i loro componenti; in questi casi non serve utilizzare xclock
.
*3*
xcalc [<opzioni>] |
xcalc
è una calcolatrice semplice e potente. Il suo funzionamento è abbastanza intuitivo, se non si desidera utilizzare la notazione polacca inversa, ma si tratta di un programma altamente configurabile ed eventualmente vale la pena di consultare la documentazione originale: xcalc(1).
|
Imposta l'aspetto e il funzionamento secondo la notazione polacca inversa.
*rpn: {on|off} |
Imposta o annulla l'aspetto e il funzionamento secondo la notazione polacca inversa.
---------------------------
Appunti Linux 1999.09.21 --- Copyright © 1997-1999 Daniele Giacomini -- daniele @ pluto.linux.it
1.) Quando non si dispone di un mouse a tre tasti, oppure se il tasto centrale non funziona, si ottiene la funzione del tasto centrale con la pressione simultanea dei due tasti funzionanti.
2.) Per incollare del testo all'interno di un'applicazione VI, occorre prima attivare la modalità di inserimento, altrimenti VI utilizzerà il testo incollato come una serie di comandi. Lo stesso ragionamento vale ovviamente anche per altri programmi che possono utilizzare i caratteri normali sia come testo da inserire che come comandi da eseguire.
3.) Esistono almeno altri due programmi per visualizzare l'ora: oclock
e rclock
.