Fluxbox Wiki
Editare il menu
1. Quale e'il file di configurazione per personalizzare il menu?
Il file di configurazione predefinito del menu di fluxbox e' ~/.fluxbox/menu
, tuttavia puo' essere modificato cambiando il valore della voce session.menuFile nel file di configurazione ~/.fluxbox/init
.
2. Uno sguardo alla struttura del file
Il file ha una struttura molto elementare. Di seguito e' riportato uno stralcio del file di configurazione del menu di Debian (/etc/X11/fluxbox/fluxbox-menu):
[begin](Fluxbox) #Automatically generated file. Donotedit(see/usr/share/doc/menu/html/index.html) [submenu](Aiuto){} [exec](DebianReference){/usr/bin/debian-reference} [exec](Info){x-terminal-emulator-T"Info"-einfo} [exec](Xman){xman} [end] [submenu](Applicazioni){} [submenu](Editor){} [exec](Nano){x-terminal-emulator-T"Nano"-e/bin/nano} [end] [submenu](Emulatoriditerminale){} [exec](XTerm){xterm} [exec](XTerm(Unicode\)){uxterm} [end] [submenu](Grafica){} [exec](XWindowSnapshot){xwd|xwud} [end] [submenu](Navigazioneweb){} [exec](w3m){x-terminal-emulator-T"w3m"-e/usr/bin/w3m/usr/share/doc/w3m/MANUAL.html} [end] [end]
Le due principali caratteristiche di questo file di testo sono:
1) Ogni riga ha una sintassi molto intuitiva e semplice; 2) L'indentatura del codice permette di "immaginarsi" il risultato finale. 3) Ogni riga ha una sintassi di questo tipo:
[tag](labelonomedelfile){comandoonomefile}
L'indentatura del file e' una caratteristica molto importante che semplfica l'operazione di generazione del menu e della sua successiva modifica, percio' e' bene mantenere questa struttura gerarchica ogni volta che si mette mano al menu.
3. La sintassi del file (base)
3.1 Sintassi generica delle righe del file
Ciascuna riga del file di configurazione del menu di fluxbox ha una struttura di questo tipo:
[tag](labelonomedelfile){comandoonomefile}
Percio' a ciascuna coppia di parentesi corrisponde un significato ben preciso e questo aiuta molto a far risparmiare tempo in fase di modifica del file.
3.2 Inizio del menu
Il menu inizia sempre con una riga di codice simile alla seguente:
[begin](Titolo_Menu)
la tag [begin] 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
3.3 Sottomenu
Per creare un sottomenu nel menu principale si usa il tag [submenu]. Ogni Sottomenu viene chiuso dal tag [end]. Il tag [submenu] deve essere seguito dagli attributi (label) e . Il secondo attributo opzionale e se omesso viene assunto uguale a (label). Riassumendo un sottomenu avra' il seguente aspetto.
[submenu](label) ... ... ... [end]
tra [submenu] e [end] vengono incluse tutte le voci del menu.
Dal momento che flubxbox legge i menu in maniera ricorsiva non c'e' limite al numero di sottomenu che possono essere annidati, praticamente vi consiglio di non esagerare per non complicare troppo la ricerca di una applicazione.
3.4 Elementi 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".
3.5 Elementi del menu (file e directory)
Per inserire il collegamento ad un file o ad una directory all'interno del menu di fluxbox si usa la seguente riga:
[include](nome_file_o_dir)
3.6 Separatore
A volte, per aumentare la chiarezza del menu pu essere utile inserire un separatore. Questo puo' essere aggiunto inserendo una riga contenente lo statement [separator].
[separator]
4. La sintassi del file (istruzioni aggiuntive)
Fluxbox mette a disposizione una serie di istruzioni addizionali per personalizzare ulteriormente il menu. Le principali sono le seguenti
4.1 Inserimento di una voce che permette la chiusura e l'uscita da fluxbox
La sintassi :
[exit](label)
4.2 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 :
[nop](label)
se label viene omessa di default viene inserita una voce vuota.
4.3 Reload del menu e di tutti i file di configurazione e di stile di fluxbox
La sintassi :
[reconfig](label)
Questa voce e' utile per creare nuovi temi e stili e non dover rilanciare fluxbox tutte le volte che necessario testare il tema.
4.4 Riavvio di fluxbox
La sintassi e':
[restart](label){command}
Verra' creata una voce nel menu con il nome "label" e quando verra' selezionata fluxbox verra' arrestato e all'uscita da fluxbox verra' eseguito il comando "command". Comunemente il comando fornito quello necessario ad avviare un altro windows manager. Il parametro "command" e' opzionale.
4.5 Voce per la configurazione di fluxbox
La sintassi :
[config](label)
Viene inserita una voce nel menu chiamata "label" che permette di accedere a numerose opzioni di configurazione riguardanti il comportamento delle finestre.
4.6 Directory dei wallpaper
E' possibile inserire una voce all'interno del menu permetta di cambiare rapidamente lo sfondo di fluxbox attraverso la seguente riga:
[wallpapers](directory){command}
Cliccando su una immagine questa viene immediatamente settata come sfondo. Ovviamente directory la directory contenente le immagini. Questa voce utilizza fbsetbg per cambiare lo sfondo.
4.7 Inserimento di una voce che permetta di accedere ai workspace
La sintassi e':
[workspaces](label)
4.8 Inserimento di un collegamento a files di stile
Ci sono due possibilita'.
La prima consiste nell'inserire una collegamento direttamente ad un file di stile. La sintassi :
[style](label){filename}
Dove label l'etichetta che verr assegnata al file nel menu e filename il nome del file (usate la sua posizione assoluta)
La seconda consiste nell'inserire un collegamento ad ogni file contenuto in una specifica directory che la directory degli stili attraverso la seguente riga:
[stylesmenu](label){directory}
Label l'etichetta che verra' associata al sottomenu all'interno del menu di fluxbox e directory la cartella contenente tutti i files di stile.