Beruflich Dokumente
Kultur Dokumente
applicazioni, non mi serve un Pager, voglio che le finestre siano fatte cos e non
cos, che abbiano questi bottoni e non altri, e che facciano questo e non questaltro,
e cos via);
c. annotate tutto su un foglio di carta; tenete presente che ogni funzione particolare
come il pannello delle applicazioni o le finestre di dialogo si ha mediante dei
moduli (delle specie di sotto-programmi) che occupano ulteriore memoria, quindi
cercate di limitarvi a ci che vi veramente necessario: potrete sempre aggiungere in
seguito qualcosaltro, o trovare un sistema migliore per ottenere lo stesso risultato;
d. infine riprendete in mano questa guida per dei consigli su come fare le vostre
modifiche/aggiunte/rimozioni (e tenete comunque a portata di mano le pagine man di
fvwm2 per ulteriori dettagli: sono sempre insostituibili).
E ora buon lavoro!
Indice
Inizio dei lavori ....................................................................................................................................3
Commenti.........................................................................................................................................3
I percorsi per le immagini ................................................................................................................3
Alcune impostazioni globali: pagine e desktop virtuali ...............................................................3
Lo stile delle finestre............................................................................................................................5
I menu ..................................................................................................................................................8
Collegare i menu e i comandi al mouse e ai tasti...............................................................................11
Alcuni moduli di fvwm2 ....................................................................................................................14
FvwmPager ....................................................................................................................................14
FvwmForm.....................................................................................................................................14
FvwmButtons .................................................................................................................................15
FvwmTaskBar................................................................................................................................16
Considerazioni finali ..........................................................................................................................17
Si usa dunque il comando ImagePath seguito da un elenco di percorsi per le directory con le
immagini, separati luno dallaltro dal carattere :. Tenete presente che il vostro sistema potrebbe
essere configurato in modo diverso, o che potreste voler usare delle mini-icone che si trovano in
altre cartelle (magari perch le avete create voi o le avete scaricate da Internet).
Avrete certamente avuto occasione di vedere lo schermo pieno zeppo di finestre aperte
(spesso e volentieri dei pop-up mentre si naviga su Internet, ma non solo) e la barra delle
applicazioni altrettanto affollata.
Con fvwm2 non possibile solo ridurre a icona i programmi aperti, ma anche avere dei
desktop virtuali, ovvero degli schermi aggiuntivi, adiacenti a quello iniziale, in cui possibile aprire
le finestre di programmi di un certo genere (e avere quindi, per esempio, uno schermo con aperti dei
programmi di grafica, un altro con degli editor e cos via), oppure spostare quelle di programmi che
al momento non vogliamo vedere.1 In realt non si tratta di veri e propri desktop virtuali, bens di
pagine. Per evitare confusione, le chiamer allora con questo nome.
Io voglio avere 9 pagine in tutto, disposte in una griglia di 3x3:
DeskTopSize 3x3
Come vedete, si usa il comando DeskTopSize seguito da due numeri separati dal carattere x:
il primo numero indica le righe, il secondo le colonne.
Come ci si sposta da una pagina a unaltra? Semplice: basta spostare il puntatore del mouse
sul bordo dello schermo e poi soffermarsi l per un po, come per spingerlo via, e poco dopo fvwm2
ci mostrer la pagina successiva.2 Non a caso ho usato la parola spingere: come se fvwm2
1
C anche la possibilit di utilizzare pi monitor affiancati fisicamente luno allaltro: si tratta della funzione
Xinerama, supportata da fvwm2 ma di cui non parler perch non la conosco, non avendo opportunit n necessit di
usarla.
2
Si pu anche impostare una scorciatoia da tastiera, ma questo lo vedremo pi avanti.
opponesse una certa resistenza, vinta la quale si passa alla pagina successiva. Si usano allora le
due istruzioni seguenti:
EdgeScroll 100 100
EdgeResistance 250 100
0 0
Il parametro "*" indica che la propriet specificata dovr riferirsi a tutte le finestre gestite da
fvwm2. E la classica wildcard che si trova in molti linguaggi di programmazione. Con la precedente
istruzione abbiamo deciso quale font dovr essere usato per la barra del titolo delle varie finestre.
Per sapere come dovete indicare il font, potete utilizzare xfontsel, che vi mostra un esempio di
scritta con il font di vostra scelta e il suo nome completo.
Style "*" HilightFore white
Questo il colore del testo della barra del titolo quando la finestra attiva.
Style "*" HilightBack steelblue
Questo il colore di fondo della barra del titolo quando la finestra attiva.
Style "*" Color Black/DarkGrey
Per le etichette delle finestre: il primo colore quello del titolo della finestra, il secondo
quello di fondo.
E possibile creare delle barre del titolo dotate di sfumature di colore, ma almeno sotto
Linux vorrei evitare questo aspetto simil-Windows. Se volete vedere come si fa, consultate le
pagine man.
Style "*" BorderWidth 5, HandleWidth 5
Con questi due comandi abbiamo deciso lo spessore in pixel del bordo (BorderWidth) e
quello delle maniglie (HandleWidth) che si trovano agli angoli delle finestre per poterle
ridimensionare. Le maniglie e i bordi avranno comunque un aspetto 3D, come si vede dalla figura
(se usate come dimensione 1 o 2, leffetto 3D sar meno evidente, ma chiaramente sar pi difficile
puntare il mouse sui bordi delle finestre). Notate infine che stata usata una virgola per separare
due istruzioni: non necessario metterne una sola per riga.
Style "*" DecorateTransient
Questa istruzione serve per ordinare a fvwm2 di applicare lo stile che stiamo definendo anche
alle finestre Transient, ovvero quelle finestre temporanee aperte da un programma durante il suo
utilizzo (per chiedere conferme o come splash-screen o altro).4
Style "*" SmartPlacement
Ho trovato questa opzione pi di una volta, ma onestamente non ho idea di cosa provochi.
La pagina man non mi sembra la spieghi, dice solo che attualmente supportata ma in futuro sar
rimossa. Se qualcuno sa darmi delucidazioni in merito, me lo faccia sapere. Credo che indichi a
fvwm2 di cercare di posizionare una finestra appena aperta in modo da non sovrapporla ad altre gi
presenti, per quanto possibile.
Style "*" ClickToFocus
4
Con questa istruzione diciamo a fvwm2 di rendere attiva una finestra solo quando ci si clicca
sopra. Il comportamento di default invece MouseFocus, ovvero una finestra diventa attiva quando
il puntatore del mouse si sposta su di essa e perde il focus se il puntatore non si trova pi sopra di
essa. C anche SloppyFocus, simile a MouseFocus ma con la differenza che una volta dato il focus
a una finestra possibile spostare il puntatore al di fuori di essa senza renderla inattiva.5
Style "*" NoPPosition
Questo comando fa s che una nuova finestra di programma, al suo apparire, ignori la
posizione suggerita dal programma stesso: molti programmi aprono infatti la loro finestra
nellangolo superiore sinistro dello schermo, e se lo facessero tutti, bisognerebbe spostare
manualmente ogni nuova finestra aperta...
Style "*" IconBox 0 0 50 1
IconBox definisce una regione dello schermo in cui fvwm2 cerca di mettere licona di una
finestra, se non si sovrappone a unaltra icona. Con questo comando indichiamo le dimensioni di
questa regione.6
Style "Fvwm*" NoTitle
La propriet NoTitle indica che quella data finestra (o tipo di finestre) non dovr avere la
barra del titolo (di default ce lhanno). Notate che in questo caso viene assegnata alle finestre il cui
nome comincia per Fvwm, tipicamente i moduli di fvwm2. Pi avanti vedremo meglio cosa sono.
Style "Fvwm*" WindowListSkip
Style "Fvwm*" CirculateSkip
Onestamente, non ho capito cosa vogliano dire di preciso queste due righe, cos le ho
lasciate cos comerano. Se qualcuno sa spiegarmelo, ben venga! Fanno comunque parte di un
gruppo di istruzioni che riguardano una lista di finestre che fvwm2 deve ignorare quando si ricorre
ad alcuni moduli (per esempio: non visualizzare determinate finestre nel modulo informativo sulle
finestre attualmente gestite da fvwm2, FvwmWinList).
Style "FvwmButtons" NoHandles, Sticky, StaysOnTop, NeverFocus
Style "FvwmForm" NoHandles
Style "FvwmTaskBar" Sticky, StaysOnTop, NeverFocus, WindowSkipList, CirculateSkip
Settiamo poi alcune propriet per i soli moduli chiamati FvwmButtons, FvwmForm e
FvwmTaskBar (notate infatti che compare il nome completo e non lasterisco), che vedremo meglio
pi avanti. Notare le opzioni per non far comparire le maniglie agli angoli (NoHandles), per
renderle i moduli visibili anche se si cambia desktop virtuale (Sticky), per far s che siano sempre
in primo piano (StaysOnTop) e perch non abbiano mai il focus (NeverFocus).7
TitleStyle -- Flat
Questa propriet indica che la barra del titolo delle finestre dovr avere un aspetto piatto
(Flat), quindi quando vi si cliccher sopra non si avr leffetto grafico tipico di un pulsante
premuto. I due caratteri -- servono solo per introdurre un flag, unopzione per il comando.
Vediamo ora lo stile dei pulsanti della barra del titolo delle finestre: ecco a voi il comando
ButtonStyle:
ButtonStyle 1 MiniIcon -- Flat
ButtonStyle 2 Pixmap mini.cross.xpm -- Flat
ButtonStyle 4 Pixmap mini.lower2.xpm -- Flat
Compare di nuovo lopzione Flat, gi vista per la barra del titolo: nemmeno i bottoni
avranno un effetto 3D quando saranno premuti.
Io voglio che le fineste abbiano tre pulsanti, uno a sinistra e due a destra. Il primo di questi
pulsanti sar identificato da un numero dispari, gli altri da dei numeri pari. Infatti, un numero
dispari indica a fvwm2 che il pulsante si dovr trovare sul lato sinistro della barra del titolo (numero
Detto tra noi, stata una delle prime cose che ho modificato, dato che come comportamenti li trovo piuttosto scomodi
entrambi. Pare che abbiano un discreto seguito, comunque, in particolare SloppyFocus.
6
Io comunque ho lasciato questa riga cos comera nel file di configurazione generale.
7
Per esempio, il modulo FvwmButtons pu essere usato per creare una finestra con dei pulsanti per lanciare delle
applicazioni: se non venisse settato NeverFocus, la finestra di questo modulo resterebbe attiva anche dopo aver lanciato
un programma tramite di essa, e bisognerebbe prima cliccarvi sopra una volta per selezionarla e poi ancora per lanciare
il programma desiderato.
pi piccolo = bottone pi a sinistra), mentre un numero pari indica che si dovr trovare sul lato
destro (numero pi piccolo = bottone pi a destra).
Per i bottoni che si trovano sul lato destro della barra del titolo voglio unimmagine ben
precisa (infatti ho fornito il nome del file), pertanto queste immagini saranno le stesse per ogni
finestra. Per il bottone di sinistra, invece, compare lopzione MiniIcon: ci significa che verr usata
unimmagine che dipende dal programma aperto. Ecco come:
##############
# Mini-icone #
##############
Style "*"
Style "emacs"
Style "gv"
Style "Gimp"
Style "kterm"
Style "mutt"
Style "xjdic"
Style "XMMS"
Style "xterm"
MiniIcon
MiniIcon
MiniIcon
MiniIcon
MiniIcon
MiniIcon
MiniIcon
NoTitle,
MiniIcon
mini.x.xpm
emacs.mini.xpm
mini-gv.xpm
wilber.mini.xpm
mini.term2.xpm
mutt.mini.xpm
mini.books.xpm
MiniIcon xmms_mini.xpm
mini.xterm.xpm
Prima viene specificata la mini-icona generale, indicata da "*", usata per tutti i programmi.
Dopodich viene data una mini-icona personalizzata per alcune applicazioni.
Questa mini-icona viene usata per la barra del titolo ma anche in moduli come FvwmTaskBar
(che vedremo pi avanti).
Notate inoltre che per XMMS ho specificato non solo la mini-icona, ma anche la propriet
NoTitle, affinch la sua finestra non abbia la barra del titolo: infatti XMMS ne ha gi una sua,
perci quella fornita da fvwm2 non necessaria (e anzi anti-estetica).
Abbiamo cos deciso quanti bottoni ci saranno e il loro aspetto, ma non la loro funzione. Io
voglio che uno dei pulsanti chiuda la finestra, uno la riduca a icona e uno faccia comparire un menu
di operazioni relative alla finestra stessa. Prima di definire luso dei pulsanti, allora, vediamo i
menu.
I menu
Il comando per decidere laspetto e il comportamento dei menu MenuStyle:
################
# Sezione menu #
################
MenuStyle "*" Foreground black, Background grey, Greyed white, \
Font -adobe-helvetica-bold-r-*-*-12-*, PopupOffset 0 100, TrianglesSolid, HilightBack Blue
"%mini.xterm.xpm%XTerm"
Lespressione contenuta tra i due simboli % indica il nome del file della mini-icona che dovr
comparire in quel dato punto del menu.9 Di seguito troviamo la dicitura che deve comparire nel
8
Il fatto di distruggere la definizione di un menu per poi ricrearla non sciocco o ridondante come potrebbe sembrare
a prima vista, anzi, utile soprattutto nel caso in cui si usino anche file di configurazione secondari. Si tratta solo di
stare attenti affinch non si abbiano due differenti definizioni di menu con lo stesso nome.
9
Volendo, possibile mettere la mini-icona dopo il nome del programma (ad esempio: + "XTerm%mini.xterm.xpm%"),
o anche metterne una prima e una dopo. Si possono anche inserire delle immagini sul lato sinistro del mene (le sidepics), come nel menu di Windows, ma io preferisco evitarle.
menu (XTerm) e infine il comando da eseguire: Exec exec xterm. Questo equivale ad aprire una
finestra di terminale e lanciare xterm &, ma qui non consigliabile farlo: meglio inserire un altro
exec prima del comando da eseguire. Tralasciandolo, la shell invocata da fvwm2 per eseguire il
comando resterebbe attiva fino alla fine del comando stesso. Alcune shell sono sufficientemente
intelligenti da evitare questo comportamento anche senza exec, ma per sicurezza meglio inserirlo.
Le righe successive seguono lo stesso schema:
+
+
"%mini.term2.xpm%KTerm"
""
"OpenOffice"
Exec exec openoffice
"%emacs.mini.xpm%XEmacs"
Exec exec xemacs -geometry 80x39+170+0
"%mini.term2.xpm%jVim"
Exec exec kterm -e jvim
"%mini.books.xpm%xjdic"
Exec exec kterm -fg green -bg black -geometry 67x12+524+454 -e xjdic
"XDVI (jp)"
Exec exec xdvi-ja -geometry 792x710
""
Nop
"Lynx (jp)"
Exec exec kterm -e lynx
"%mutt.mini.xpm%Mutt (jp)"
Exec exec kterm -e mutt
""
Nop
"%xmms_mini.xpm%XMMS"
Exec exec xmms
""
Nop
"%wilber.mini.xpm%The GIMP" Exec exec gimp
"%mini.colors.xpm%xbmbrowser" Exec exec xbmbrowser -label
""
Nop
"%mini.happy.xpm%Giochi"
Popup Giochi
""
Nop
""
Nop
"%mini.exit.xpm%Esci da Fvwm" Popup Quit-Verify
E inutile che vi dica che ho installato anche altri programmi, non solo questi. Quello che mi
preme farvi notare con queste righe che si possono fornire dei parametri ai programmi da lanciare
(ad esempio per eseguire jvim in una finestra kterm).
Incontriamo inoltre il nuovo comando Popup, che serve a richiamare un sottomenu il cui
nome (non il titolo) compare subito dopo. Io qui ne propongo solo due, Giochi e Quit-Verify.
Ecco le loro definizioni:
# Menu Giochi
#############
DestroyMenu Giochi
AddToMenu Giochi "Giochi" Title
+ "XBubble"
Exec exec xbubble
+ "XPuyoPuyo"
Exec exec xpuyopuyo
# Menu Quit-Verify
##################
DestroyMenu Quit-Verify
AddToMenu Quit-Verify "Vuoi davvero uscire?" Title
+ "%no.xpm%No, resetta FVWM2"
Restart
+ ""
Nop
+ "%yes.xpm%Esci!!"
Quit
Anche i sottomenu, come vedete, si definiscono nello stesso modo. A differenza del menu
principale, per, questi sottomenu hanno un titolo racchiuso tra virgolette, Giochi nel primo caso
e Vuoi davvero uscire? nel secondo: essi saranno visualizzati allapertura dei sottomenu. Notate i
nuovi comandi Restart (per far ripartire fvwm2) e Quit (per uscire da fvwm2 e da X).
Prima abbiamo deciso che il bottone di sinistra della barra del titolo deve far comparire, se
premuto, un menu con le operazioni che possibile compiere sulla finestra. Ecco allora il menu
Window-Ops:10
DestroyMenu Window-Ops
AddToMenu Window-Ops "Alt-F1: Window Ops" Title
+ "Alt-F2: Main Menu"
Popup Hal2003
10
Menu che ho mantenuto identico allo script di esempio fornito da fvwm2, a parte il fatto che questo richiama il menu
Hal2003 come menu principale.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
"Alt-F3:
"Alt-F4:
"Alt-F5:
"Alt-F6:
"Alt-F7:
"Alt-F8:
"Alt-F9:
"Alt-F10:
"Alt-F11:
"Alt-F12:
"
"
"
""
"
""
"
"
Lower"
Window List"
Previous"
Next"
Move"
Resize"
(De)Iconify"
(Un)Maximize to screen"
Raise"
(Un)Stick"
(Un)Maximize vertical"
(Un)Maximize horizontal"
(Un)Shade"
ScrollBar"
Destroy"
Close"
Lower
WindowList
Prev
Next
Move
Resize
Iconify
Maximize 100 100
Raise
Stick
Maximize 0 100
Maximize 100 0
WindowShade
Nop
Module FvwmScroll 2 2
Nop
Destroy
Close
I comandi in rosso sono tutti comandi interni di fvwm2, dai nomi autoesplicativi. Prestate
attenzione solo al comando Module, che naturalmente richiama il modulo specificato (in questo
caso FvwmScroll),11 a Stick,12 a WindowList13 e a WindowShade.14
Ora che i menu sono definiti, giunta lora di collegarli ai tasti del mouse e ai bottoni della
barra del titolo delle finestre.
11
10
Il comando Mouse serve per specificare le operazioni da compiere quando viene premuto un
pulsante del mouse. La sintassi completa del comando :
Mouse pulsante contesto modificatore funzione
Al posto di pulsante va indicato quale tasto del mouse associare a quella data istruzione: 1
il tasto sinistro, 2 il tasto centrale (se si ha un mouse con solo due tasti, allora indica la pressione
simultanea dei due) e 3 il tasto destro. Se il numero 0, allora un qualunque tasto del mouse
produrr quelleffetto.
Contesto indica il punto in cui deve essere premuto il tasto del mouse per produrre leffetto
voluto: la R indica la Root Window, ovvero lo sfondo, ma possibile specificare anche altre
opzioni, per esempio W (Window, quindi una finestra), T per la barra del titolo di una finestra, F
per il contorno e A per un punto qualunque esclusi i bottoni della barra del titolo. Un numero tra 0 e
9 indica invece un pulsante della barra del titolo, come vedremo dopo.
Modificatore indica il tasto che deve essere premuto assieme al tasto del mouse scelto per
poter eseguire quel comando: per esempio, N indica nessun modificatore, C sta per Control, S
per Shift, M per Meta e A per uno qualunque. Se specifico CS, vorr quindi dire che sia il tasto
Control che il tasto Shift devono essere premuti.
La differenza tra il commando Menu e il commando Popup visto prima che Menu fa s che il
menu sia Sticky, ovvero che resti visualizzato anche se il pulsante del mouse non viene tenuto
premuto, mentre Popup fa s che il menu venga mostrato solo temporaneamente, finch il puntatore
del mouse si trova su di esso. E per questo che ora abbiamo dato a fvwm2 il comando Menu per far
comparire il menu.
Adesso potrete capire anche le istruzioni seguenti, che riguardano la pressione di un tasto del
mouse su determinati punti di una finestra (ho mantenuto quelle del file di esempio):
#
# Moving and resizing, depending on which part of the window
# you grab (T=title bar, S=side/top/bottom, F=corner).
#
Mouse 0 T A move-and-raise-or-raiselower
#This caused problems with emacs selection (Bug #17668).
#Mouse 0 W M move-and-raise-or-raiselower
Mouse 0 W M
Mouse 0 F A resize-or-raiselower
Mouse 0 S A resize-or-raiselower
#
# Move or de-iconify an icon.
#
Mouse 0 I A move-or-winmenu-or-deiconify
Ora passiamo ai bottoni della barra del titolo delle finestre. Io voglio che il bottone pi a
destra serva a chiudere la finestra, quello vicino a ridurla a icona e il bottone di sinistra a far
comparire il menu delle operazioni che si possono compiere sulla finestra. Ecco come devo
procedere:
11
#
# Buttons on the title bar (1,3,5,7,9 are on the left, 0,8,6,4,2 on
# the right side of the title bar). Note that the bindings here
# make more sense if the ButtonStyle's defined earlier are retained.
#
Mouse 0 1 A Popup Window-Ops
Mouse 0 2 A Close
Mouse 0 4 A Iconify
Ho lasciato le indicazioni sullordine e la disposizione dei bottoni che comparivano nel file
di configurazione generale: sono utilissime come promemoria.
Come avevamo anticipato, possibile configurare anche delle operazioni eseguibili da
tastiera. Lo si fa con il comando Key, che ha la stessa sintassi di Mouse (anche qui ho mantenuto i
comandi originali, a parte il nome del mio menu principale, Hal2003):
#
# Section: Key bindings
#
Key
Key
Key
Key
Key
Key
Key
Key
Key
Key
Key
Key
Key
Key
Key
Key
Key
Key
Key
Key
Tab
Tab
Tab
Tab
Left
Up
Right
Down
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
M
MS
CM
CMS
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
Vediamo ora alcune funzioni di fvwm2. Non ve le spiegher in dettaglio, anche perch mi
andavano bene comerano e quindi non ho cambiato nulla nel file di configurazione generale:
#
#
#
#
#
#
#
#
Section: Functions
The following functions operate on a window or menu. The
names are systematic: foo means "do foo"; foo-or-bar means
"do foo, if mouse is moving, bar if click"; and foo-or-bar-or-baz
adds "baz, if double-clicked".
DestroyFunc move-or-winmenu-or-deiconify
AddToFunc
move-or-winmenu-or-deiconify
+ "M" Move
+ "C" Popup Window-Ops
+ "D" Iconify
DestroyFunc deiconify-and-focus
AddToFunc
deiconify-and-focus
+ "I" Iconify -1
+ "I" Focus
DestroyFunc deiconify-and-raise
AddToFunc
deiconify-and-raise
+ "I" Iconify -1
+ "I" Raise
DestroyFunc focus-and-raise
AddToFunc
focus-and-raise
+ "I" Focus
+ "I" Raise
DestroyFunc move-or-raiselower
AddToFunc
move-or-raiselower
+ "M" Move
+ "C" RaiseLower
DestroyFunc move-and-raise-or-raiselower
12
AddToFunc
move-and-raise-or-raiselower
+ "M" Move
+ "M" Raise
+ "C" RaiseLower
DestroyFunc move-or-raiselower-or-maximize-vertical
AddToFunc
move-or-raiselower-or-maximize-vertical
+ "M" Move
+ "C" RaiseLower
+ "D" Maximize 0 100
DestroyFunc resize-or-raiselower
AddToFunc
resize-or-raiselower
+ "M" Resize
+ "C" RaiseLower
13
FvwmPager
Sostanzialmente si tratta una specie di monitor per avere
sottocchio le pagine di fvwm2, con tutte le finestre aperte in ognuna di
esse. Osservando limmagine qui a lato (un po ingrandita rispetto alle
dimensioni reali) potete vedere che:
come deciso allinizio, le pagine sono 9 e sono disposte in una
griglia di 3x3;
al momento stiamo guardando la prima, cio quella in alto a sinistra (ha un colore di fondo
diverso dalle altre);
vi sono delle finestre aperte, anche se si riesce a distinguere chiaramente solo quella di
kterm; l a fianco si vede la finestra attiva in questo momento, distinguibile per il diverso
colore di fondo e del titolo;
in basso a destra compare la finestra del Pager stesso.
#######################
# Configura FvwmPager #
#######################
Module FvwmPager
Innanzitutto, notate che listruzione Module non associata a un pulsante del mouse o a
unopzione di un menu o altro, quindi il Pager partir automaticamente allapertura di fvwm2.
Ora definiamo alcune sue caratteristiche. Se siete riusciti ad arrivare fin qui senza ammattire,
dovreste riuscire a capire le istruzioni senza grosse difficolt.
Style "FvwmPager" Sticky, NoTitle, StaysOnTop, NoHandles, BorderWidth 4
*FvwmPagerBack SlateGrey
*FvwmPagerFore Black
*FvwmPagerFont none
*FvwmPagerHilight SlateBlue4
*FvwmPagerGeometry 120x80-0-30
*FvwmPagerSmallFont -*-times-medium-r-*-*-*-80-*-*-*-*-*-*
*FvwmPagerDeskTopScale 32
Notate la propriet StaysOnTop per far s che il Pager sia sempre in primo piano, e che non
viene specificata la disposizione delle pagine: fvwm2 usa quella definita in precedenza tramite
DeskTopSize. Qui viene decisa solo la dimensione in pixel del Pager.
DeskTopScale 32 indica che gli oggetti mostrati nel Pager avranno 1/32 delle dimensioni
corrette. Viene usata quando non vengono date le dimensioni con Geometry.
FvwmForm
Questo modulo fa comparire una finestra del tutto
particolare per chiedere informazioni allutente. Io uso questo
modulo per verificare se lutente vuole veramente uscire da fvwm2
oppure no, un po come avviene nel mondo Windows.
#####################
# Modulo per uscire #
#####################
DestroyModuleConfig Form-Quit-Verify: *
*Form-Quit-Verify:
*Form-Quit-Verify:
*Form-Quit-Verify:
*Form-Quit-Verify:
*Form-Quit-Verify:
*Form-Quit-Verify:
*Form-Quit-Verify:
14
GrabServer
WarpPointer
Command
Beep
Line
Center
Text
"Vuoi davvero uscire?"
Line
expand
Button
quit "Certo!" ^M
*Form-Quit-Verify:
*Form-Quit-Verify:
*Form-Quit-Verify:
*Form-Quit-Verify:
*Form-Quit-Verify:
Command
Button
Command
Button
Command
Quit
restart "Resetta" ^R
Restart
quit "NO!" ^[
Nop
Io uso questo modulo solo per questo scopo, ma possibile sfruttarlo anche per dellaltro.
Per maggiori informazioni e qualche altro esempio, vi rimando alle pagine man. In ogni caso, tenete
presente che questo modulo non opera alcun controllo di validit sui dati eventualmente immessi
dallutente.
Fate attenzione a GrabServer e a WarpPointer: il primo comando serve affinch fvwm2
prenda il controllo del puntatore del mouse allapertura del form, mentre il secondo porta
automaticamente il puntatore allinterno della finestra del form; sono due comandi molto utili
proprio nel caso di form con lo scopo di verificare lintenzione di uscire da fvwm2 e da X.
Notate inoltre che qui sto solo decidendo come dovr essere formato il modulo, ma devo poi
decidere come richiamarlo. Io ho scelto di farlo apparire non quando scelgo di uscire scegliendo
lapposita opzione dal menu definito prima (devo gi passare per un sottomenu, ricordate? Questo
semplice fatto mi obbliga a sapere cosa faccio), ma quando clicco su un apposito pulsante in una
sorta di barra delle applicazioni, in modo da evitare leventualit di aver cliccato su quel bottone per
puro caso. Ma quale barra delle applicazioni?, potreste chiedermi. Quella che creeremo ora con
un altro modulo, FvwmButtons.
FvwmButtons
Ho utilizzato questo modulo per costruire una sorta di pannello,
posizionato sul lato destro dello schermo, da cui lanciare le applicazioni che uso
pi di frequente (se me ne servono delle altre, uso il menu). Lo potete ammirare
nellimmagine qui a lato.15
In realt i pulsanti li ho creati pi piccoli, qui li ho fatti apposta cos grandi
e sproporzionati rispetto al testo in essi contenuto per mostrarvi meglio il
funzionamento di questo modulo.
############################
# Configura barra laterale #
############################
Module FvwmButtons -g 120x500-0+0
La riga precedente indica a fvwm2 di creare un pulsante che reca il testo Xterm, e tale
dicitura (Title) non deve comparire, come di default, sotto allicona bens di lato (Side), per
lesattezza a sinistra (Left); licona il file mini.xterm.xpm, e quando il bottone viene premuto
deve eseguire il comando indicato come parametro di Action (il comando scritto secondo le
specifiche di fvwm2).
15
Detto tra noi, in seguito ho eliminato questo pannello perch pu occupare molto spazio. Lo riporto comunque a titolo
di esempio.
15
Le righe successive seguono lo stesso schema. Notate che possibile passare dei parametri
ai programmi lanciati e anche lanciare un modulo di fvwm2 (nellultima riga, per eseguire il modulo
FvwmForm spiegato prima).
*FvwmButtons:
*FvwmButtons:
*FvwmButtons:
Action
*FvwmButtons:
Action
*FvwmButtons:
*FvwmButtons:
Action
*FvwmButtons:
Action
*FvwmButtons:
*FvwmButtons:
*FvwmButtons:
Action
FvwmTaskBar
Si tratta di una barra delle applicazioni analoga a quella di Windows. Potete vederne
unimmagine qui sotto:
A sinistra compare un pulsante per il menu di avvio, mentre a destra si possono vedere lora
e unimmagine che indica la presenza o lassenza di messaggi di posta.
E possibile creare una barra con pi di una riga, e volendo possibile ampliarla (fino a 8
righe) o ridurla manualmente durante la sessione di lavoro, ma io preferisco avere una sola riga
(opzione di default, quindi non occorre specificarla).
#####################
# Configura TaskBar #
#####################
Module FvwmTaskBar
*FvwmTaskBarGeometry +0-0
*FvwmTaskBarBack SlateGrey
*FvwmTaskBarUseSkipList
*FvwmTaskBarScreenOnly
*FvwmTaskBarShowTips
Listruzione ScreenOnly fa s che nella TaskBar vengano visualizzate solo le finestre dello
schermo Xinerama in cui ci si trova al momento (cambiando schermo, le finestre visualizzate
cambiano di conseguenza; in effetti, qui io avrei potuto anche usare PageOnly), mentre ShowTips
attiva le finestre di tooltip quando il puntatore si trova su una finestra presente nella TaskBar.
*FvwmTaskBarStartName Hal 2003
*FvwmTaskBarStartMenu Hal2003
*FvwmTaskBarStartIcon mini.penguin.xpm
La prima di queste righe specifica il testo che deve apparire sul pulsante per aprire il menu
di avvio (senza virgolette, come vedete), la seconda il nome del menu che deve essere aperto
cliccando su tale pulsante e la terza il file con licona da visualizzare nel pulsante.
Ecco fatto: per avere una barra delle applicazioni non necessario altro. Facile, no?
Ovviamente ci sono altre cose da configurare, volendo: il comando da eseguire quando si clicca due
volte sullicona della posta (per aprire un altro programma invece di mail, o per specificare un altro
percorso per la posta, per esempio), il formato dellora, e altre cosette, ma a me va bene anche cos.
Per ulteriori informazioni, vi rimando alle pagine man. Ricordate che, oltre alle opzioni appena
viste, ce ne erano altre allinizio del file di configurazione, come il fatto che non abbia la barra del
titolo.
16
Considerazioni finali
Come avete visto, fvwm2 un window manager con un gran numero di funzioni utili e
configurabili senza troppe difficolt, fatta eccezione per alcuni moduli.
Non ho descritto tutte le opzioni disponibili, sia perch io stesso non le conosco tutte (ne uso
solo alcune e non ho grandi pretese), sia perch la versione in mio possesso ormai un po datata
(nellultima disponibile sono state aggiunte molte caratteristiche interessanti), sia perch le opzioni
di configurazione sono cos tante che non basterebbe un enciclopedia per coprirle tutte in dettaglio,
sia infine perch mi sembra giusto che ognuno abbia degli elementi di base ma anche voglia di
smanettare un po da solo per scoprire cosa fare e come farlo.
Ho cercato comunque di essere il pi chiaro possibile, e se sono riuscito a farvi capire come
potete sfruttare queste funzioni per personalizzare il vostro desktop e migliorare il vostro lavoro,
allora avr centrato il bersaglio.
Naturalmente, ogni messaggio, critica o apprezzamento sempre bene accetto.
Buon lavoro!
17