Fluxbox, un Window Manager per Computer con poche risorse: differenze tra le versioni

Riga 103: Riga 103:
# gtk-chtheme
# gtk-chtheme
</pre>
</pre>
==Il Menu di Fluxbox==
Il file di configurazione del menu di fluxbox di default è <code>~/.fluxbox/menu</code>.
<br/>
Il file ha una struttura molto elementare. Di seguito è riportato uno stralcio del file di configurazione del menu di default su debian (/etc/X11/fluxbox/fluxbox-menu):
<pre>
[ begin] (Fluxbox)
# Automatically generated file. Do not edit (see /usr/share/doc/menu/html/index.html)
[submenu] (Aiuto) {}
  [exec] (Debian Reference) {/usr/bin/debian-reference}
  [exec] (Info) { x-terminal-emulator -T "Info" -e info}
  [exec] (Xman) {xman}
[end]
[submenu] (Applicazioni) {}
  [submenu] (Editor) {}
    [exec] (Nano) { x-terminal-emulator -T "Nano" -e /bin/nano}
  [end]
  [submenu] (Emulatori di terminale) {}
    [exec] (XTerm) {xterm}
    [exec] (XTerm (Unicode\)) {uxterm}
  [end]
  [submenu] (Grafica) {}
    [exec] (X Window Snapshot) {xwd | xwud}
    [end]
  [submenu] (Navigazione web) {}
    [exec] (w3m) { x-terminal-emulator -T "w3m" -e /usr/bin/w3m /usr/share/doc/w3m/MANUAL.html}
  [end]
[end] 
</pre>
Le principali caratteristiche di questo file di testo sono:
# Ogni riga ha una sintassi molto intuitiva e semplice;
# L'indentatura del codice permette di "immaginarsi" il risultato finale.
# Ogni riga ha una sintassi di questo tipo:
<pre>
[tag] (label o nome del file) {comando o nomefile}
</pre>
L'indentatura del file è una caratteristica molto importante che semplfica l'operazione di generazione del menu e della sua successiva modifica, perciò è bene mantenere questa struttura gerarchica ogni volta che si mette mano al menu.
===Sintassi generica delle righe del file ===
Ciascuna riga del file di configurazione del menu di fluxbox ha una struttura di questo tipo:
<pre>
[tag] (label o nome del file) {comando o nomefile}
</pre>
Perciò a ciascuna coppia di parentesi corrisponde un significato ben preciso e questo aiuta molto a far risparmiare tempo in fase di modifica del file.
<br/>
Il menu inizia sempre con una riga di codice simile alla seguente:
<pre>
[begin] (Titolo_Menu)
</pre>
la tag <code>[begin]</code> deve essere presente nel file, altrimenti fluxbox cerca il file di configurazione di default del sistema, mentre (Titolo_Menu) può essere omesso. Titolo_Menu è il testo che verrà visualizzato in cima al menu di fluxbox.
<br/>
Per la chiusura del menu viene utilizzata la tag <code>[end]</code>. Questa tag può essere utilizzata sia per chiudere un menu che un sottimenu. In ogni menu deve essere presente una tag <code>[end]</code> per ogni tag <code>[submenu]</code> più una che comunque è presente e che corrisponde alla tag <code>[begin]</code>. Quindi un menu ha la seguente struttura:
<pre>
[begin] (Titolo Menu)
...
...
...
[end]
</pre>
Per creare un sottomenu nel menu principale si usa il tag <code>[submenu]</code>. Ogni Sottomenu viene chiuso dal tag <code>[end]</code>. Il tag <code>[submenu]</code> deve essere seguito dagli attributi (label) e . Il secondo attributo è opzionale e se omesso viene assunto uguale a (label). Riassumendo un sottomenu avrà il seguente aspetto.
<pre>
[submenu] (label)
...
...
...
[end]
</pre>
dove tra <code>[submenu]</code> e <code>[end]</code> vengono incluse tutte le voci del menu.
<br/>
Dal momento che flubxbox legge i menu in maniera ricorsiva non c'è limite al numero di sottomenu che possono essere annidati, praticamente vi consiglio di non esagerare per non complicare troppo la ricerca di una applicazione.
==Item del menu (Eseguibili)==
Per popolare ciascun menu di voci  che corrispondono all'esecuzione di un programma si utilizza il seguente statement:
[exec] (label) {command}
A questa riga viene associata nel menu una voce che viene chiamata "label" e che esegue il comando "command".
===Item del menu (Files e directory)===
Per inserire il collegamento ad un file o ad una directory all'interno del menu di fluxbox si usa la seguente riga:
<pre>
[include] (nome_file_o_dir)
</pre>
===Separatore===
A volte, per aumentare la chiarezza del menu può essere utile inserire un separatore. Questo può essere aggiunto inserendo una riga contenente lo statement <code>[separator]</code>:
<pre>
[separator]
</pre>
==Statements aggiuntivi===
Fluxbox mette a disposizione una serie di statements addizionali per personalizzare ulteriormente il menu. I principali sono:
* Inserimento di una voce che permette la chiusura e l'uscita da fluxbox
<pre>
[exit] (label)
</pre>
* Inserimento di una voce "estetica nel menu". In altre parole: inserimento di una voce che se selezionata non comporta l'esecuzione di nessun comando. La sintassi è:
<pre>
[nop] (label)
</pre>
se label viene omessa di default viene inserita una voce vuota.
* Reload del menu e di tutti i files di configurazione e di stile di fluxbox
<pre
[reconfig] (label)
</pre>
Questa voce è utile per creare nuovi temi e stili e non dover rilanciare fluxbox tutte le volte che è necessario testare il tema.
* Riavvio di fluxbox
<pre>
[restart] (label) {command}
</pre>
Verrà creata una voce nel menu con il nome "label" e quando verrà selezionata fluxbox verrà arrestato e all'uscita da fluxbox verrà eseguito il comando "command". Comunemente il comando fornito è quello necessario ad avviare un altro windows manager. Il parametro "command" è opzionale.
* Voce per la configurazione di fluxbox
<pre>
[config] (label)
</pre>
Viene inserita una voce nel menu chiamata "label" che permette di accedere a numerose opzioni di configurazione riguardanti il comportamento delle finestre.
* Directory dei Wallpapers
E' possibile inserire una voce all'interno del menu permetta di cambiare rapidamente lo sfondo di fluxbox attraverso la seguente riga:
<pre>
[wallpapers] (directory) {command}
</pre>
Cliccando su una immagine questa viene immediatamente settata come sfondo. Ovviamente <code>directory</code> è la directory contenente le immagini.