|
|
OTTIMIZZARE LE RISORSE: IL
GESTORE DI FINESTRE TWM
A cura di: Francesco Celebrini
- www.tutorialpc.it
Nota: E' permessa la pubblicazione
di questa guida su altri siti lasciando intatto il contenuto, questa nota
e il link al sito
Era una grigia giornata d'autunno di qualche anno fa, probabilmente, quando
un "amico esperto di computer" ( chi non ha mai avuto un "amico esperto di
computer"?) si presentò raggiante alla porta di casa mia con in mano una copia
di Linux, all'epoca da me sconosciuto. L'antefatto risaliva ad alcuni giorni
prima quando, incontrandolo per caso, mi lanciai in uno sproloquio sulla precoce
obsolescenza dei pc e dei programmi e sulla mia ferrea quanto donchischiottesca
ostinazione a non cadere nel ricatto della continua spesa per stare al passo con
le ultime trovate di marketing dal mondo dell' information tecnology........
..... in poche parole, avevo un computer non più nuovissimo che i più o meno
recenti sistemi operativi e programmi windows avevano reso di una lentezza
estenuante!! E fu a questo punto che l'"amico esperto di computer" entrò
prepotentemente sulla scena affermando che "...ho io la soluzione, ti porto un
sistema operativo che gira bene anche su vecchi pc...". Il risultato fu che con
Linux il pc sembrava essere ancora più lento!!!!
Lasciando stare gli aneddoti divertenti, ce n'è voluto poi di tempo per
capire che in fondo l'amico aveva ragione: con Linux si possono riutilizzare
vecchi pc a patto però di essere in grado di configurarli e di ottimizzarli. In
questo senso tanti e di varia natura sono gli accorgimenti da adottare ma in
questo breve articolo mi soffermerò sull'analisi di TWM (Tab Window Manager), il
gestore di finestre più leggero (e spartano) di Linux fornito insieme al server
x, che risulta essere un ottimo strumento in computer non molto potenti.
Per quelli di voi che non hanno mai utilizzato TWM è necessario dire che per
lanciarlo (almeno su red hat) occorre prima digitare da console il comando:
switchdesk TWM e poi : startx
TWM ha un file di configurazione che si trova generalmente in /etc/X11/twm/system.twmrc
che permette una buona configurazione del gestore di finestre. Il file, composto
da variabili e funzioni, può essere diviso in 4 parti: - nella prima vengono
dichiarate alcune variabili generali (font, icona, colori dei vari elementi)
-nella seconda vengono definite le funzioni composte che riguardano il movimento
-nella terza vengono abbinate le funzioni precedenti con i tasti del mouse
-nella quarta vengono definiti i menù e gli eventuali sottomenù e la funzione
attribuita a ciascuna voce
Per entrare nel dettaglio, di seguito vi mostro un esempio di file system.twmrc
che non esaurisce certo tutte le opzioni di configurazione ma può essere una
buona base di partenza (ricordatevi che la pagina man di TWM è piuttosto
dettagliata).
###### system.twmrc ######
Definizione di alcune variabili
NoGrabServer # non coinvolge il server durante la visualizzazione di menu',
ecc. # (notate che ho usato l'apostrofo, i caratteri accentati non sono #
consentiti nemmeno nei commenti) RestartPreviousState # riporta lo schermo allo
stato precedente lo spengimento # del gestore di finestre DecorateTransients #
inserisce la barra del titolo per le finestre in movimento
# indica il font, l'icona, ecc.. TitleFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
ResizeFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*" MenuFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
IconFont "-adobe-helvetica-bold-r-normal--*-100-*-*-*-*-*-*" IconManagerFont "-adobe-helvetica-bold-r-normal--*-100-*-*-*"
# di seguito i colori dei vari elementi Color { BorderColor "lavender"
DefaultBackground "azure" DefaultForeground "darkgreen" TitleBackground "azure"
TitleForeground "darkgreen" MenuBackground "azure" MenuForeground "darkgreen"
MenuTitleBackground "darkgreen" MenuTitleForeground "azure" IconBackground "azure"
IconForeground "darkgreen" IconBorderColor "darkgreen" IconManagerBackground "azure"
IconManagerForeground "darkgreen" }
# visualizza l'immagine indicata sulla barra della finestra al passaggio del
# puntatore Pixmaps { TitleHighlight "/root/immagine.bmp" }
################################### Definizione di alcune funzioni composte
utili per azioni basate sul movimento # (utilizzate nella sezione succesiva).
###################################
MoveDelta 3 # questa variabile specifica il numero di pixel che il puntatore
# deve percorrere prima che la funzione f.move inizi a funzionare; # provate a
dargli valore 0 e vedrete la sottile differenza! Function "sposta-sotto" {
f.move f.deltastop f.lower } Function "sposta-sopra" { f.move f.deltastop
f.raise } Function "sposta-icona" { f.move f.deltastop f.iconify } # Le funzioni
sopra dichiarate sono composte da un gruppo di tre funzioni ciascu # na;
vediamone alcune nel dettaglio: # f.move ----> permette di trascinare il
contorno della finestra selezionata men # tre il pulsante del mouse indicato e'
premuto # f.lower ----> abassa la finestra selezionata # f.deltastop ---->
permette di terminare una funzione definita dall'utente se i # l puntatore e'
stato mosso piu' del numero di pixel definito # in MoveDelta # f.raise ---->
alza la finestra selezionata # f.iconify ----> riduce a icona o ripristina la
finestra o l'icona selezionata
################################### Definizione di alcuni abbinamenti di
funzioni viste in precedenza con i tasti # del mouse. # La sintassi e': #
Pulsante = TASTI : CONTESTO : FUNZIONE # I pulsanti sono ovviamente il sinistro,
il destro e il centrale del mouse; i t # asti sono indicati da una lettera che
si riferisce ad un tasto (s indica il ta # sto shift, c il tasto control, ecc.);
il contesto indica l'elemento visualizza # to da considerare (root e' lo
sfondo); la funzione e' la funzione assegnata.
################################### Button1 = : root : f.menu "principale"
Button1 = c : window|icon : f.function "sposta-sotto" Button2 = c :
window|icon : f.iconify Button3 = c : window|icon : f.function "sposta-sopra"
Button1 = : title : f.function "sposta-sopra" Button2 = : title :
f.raiselower
Button1 = : icon : f.function "sposta-icona" Button2 = : icon : f.iconify
Button1 = : iconmgr : f.iconify Button2 = : iconmgr : f.iconify
################################### Definizione dei menu'; ad ogni menu' e
sottomenu' viene attribuito un nome e i # colori che acquisiscono i nomi degli
elementi e lo sfondo al passaggio del pun # tatore; ad ogni elemento del menu'
viene attribuita una funzione che svolge un # determinato compito (per alcune
funzioni non sara' necessaria una descrizione)
################################### menu "principale" ("mediumblue" : "orange")
{ "MENU PRINCIPALE" f.title # indica il titolo del menu' "" f.raise # esegue la
funzione lasciando uno spazio vuoto nel menu "TERMINALE" f.exec "exec xterm &" #
esegue il programma xterm "Programmi" f.menu "Programmi" # esegue la funzione
che apre un sottomenu' "" f.nop # serve solo per lasciare uno spazio vuoto
"Riduci a icona" f.iconify "Ridimensiona" f.resize "Sposta sotto" f.lower "Messa
a fuoco" f.focus "Fuori fuoco" f.unfocus "Mostra riepilogo finestre"
f.showiconmgr "Nascondi riepilogo finestre" f.hideiconmgr "Termina" f.destroy #
termina l'applicazione "Cancella" f.delete # chiude la finestra "Riavvia"
f.restart "Esci" f.quit }
menu "Programmi" ("mediumblue" : "pink") { "Mozilla" f.exec "exec mozilla &"
"Open Office" f.exec "exec ooffice &" "Calcolatrice" f.exec "exec xcalc &"
"Grafica" f.menu "Grafica" }
menu "Grafica" ("mediumblue" : "gold") { "Gimp" f.exec "exec gimp &" "Bitmap"
f.exec "exec bitmap &" }
################ fine ################
Buona configurazione!
Torna al menù principale
Nuova pagina 1
|
|