Come accennato nel post precedente relativo all’utilizzo generale di questo wm, la customizzazione di OpenBox è sostanzialmente racchiusa in 3 file.

In specifico, il file rc.xml che risiede nella directory di riferimento ~/.config/openbox racchiude le configurazioni generali e altre interessanti possibilità di customizzazione. Vediamo brevemente come sfruttarle.

Cominciamo dicendo che chi utilizza da un pò di tempo i wmfluxbox,openbox,pekwm…ed altri, quasi sempre ha la necessità di assegnare funzioni e/o applicativi ad una certa combinazione di tasti. Openbox gestisce il bind keys nel file generale rc.xml e le direttive relative ad una combinazione di tasti sono racchiuse dai tag:

<!-- riferito all'apertura del bindkey -->
<keybind>

<!-- riferito alla chiusura del bindkey -->
</keybind>

NB: I tag relativi al bind sono gestiti con regole di codice inserite all’interno dalla sezione rappresentata dai tag:

<keyboard>

</keyboard>

Vediamo un esempio pratico di ciò che il file rc.xml già supporta, aprendo il file con un editor di testo:

~$ vi ~/.config/openbox/rc.xml
<keybind key="A-F1">
 <action name="DesktopLeft">
 <dialog>no</dialog>
 <wrap>no</wrap>
 </action>
 </keybind>

<keybind key="A-F2">
 <action name="DesktopRight">
 <dialog>no</dialog>
 <wrap>no</wrap>
 </action>
 </keybind>

In specifico i tag si riferiscono a:

<keybind key="A-F1">         # Tipo di combinazione di tasti
 <action name="DesktopLeft"> # Tipo di azione
 <dialog>no</dialog>         # Tipo di notifica e/o finestra di dialogo
 </action>                   # Chiusura dell'azione

Nell’esempio quindi, la combinazione di tasti creata e/o preformattata dal wm A+F1 e A+F2 , dove per A si intende il tasto “ALT” ci permette mediante pressione singola di spostare l’aria desktop da utilizzare verso destra o verso sinistra muovendoci all’interno dei nostri desktop virtuali.

NB: Allo stesso modo sono gestite le regole bindings del mouse se pur con molte proprietà aggiuntive  per caratteristiche differenti.

Esempio di customizzazione applicativo + binding:

Supponiamo di voler fare in modo che la nostra shell emulata attraverso l’applicativo che preferiamo “xterm,gnome-terminal,urxvt,aterm,eterm,mrxvt,etc..” debba restare a schermo in modalità sticky (attaccata come se fosse incorporata nel desktop), magari senza i bordi finestra nel caso sia anche trasparente.  Per ottenere questo risultato è evidente che abbiamo bisogno di due cose:

  1. Una regola che binda una combinazione di tasti utile a massimizzare la finestra in caso di bisogno, visto che non avrà più i bordi della finestra che ce lo permetterebbero.
  2. Una specifica regola che dica a openbox che quel terminale deve essere aperto in quel particolare punto e che non deve avere bordi finestra etc…

Per il punto uno quindi aggiungiamo un binding che prevede ad esempio la combinazione Mod4+m.

NB: Capendoci meglio per Mod4 si intende il tasto della tastiera rappresentante il_ “simbolo di windows”_ (una volta tanto questo benedetto windows ci risulta utile hahaha :P)

Regola da aggiungere nell’apposita sezione **** come da esempio:

<keybind key="W-m">
 <action name="ToggleMaximizeFull"/>
 </keybind>

NB: E’ buona norma controllare sempre se l’azione non è già presente nel file rc.xml e in tal caso se contiene un altro tipo di keybind. Di default OpenBox implementa già molti bindings.

Per definire l’applicazione, la posizione sul desktop e le preferenze della stessa invece si utilizza l’apposita sezione racchiusa nei tag:

<applications>

</applications>

NB: E’ posta solitamente in prossimità della fine del file rc.xml.

Aggiungiamo nei tag appositi la nostra applicazione in modo che risulti all’interno dei tag come da esempio:

<applications>
no yes 300 0 normal false
</applications>
**NB**: verranno definite quindi: l'applicazione, il tipo di decorazione e preferenze di stile e focus, la posizione sullo schermo e le altre caratteristiche di posizionamento della finestra. In identico modo potevano essere aggiunte e/o modificate le caratteristiche come da esempio:
<applications>
no yes 300 0
below
all
false
</applications>
**NB**: In questo caso il nostro emulatore di terminale verrà considerato parte integrante del desktop e di tutti i desktop virtuali presenti. Una sorta di modalità "sticky" per intenderci. Screen del risultato:
urxvt_openbox
**NB**:  In questo caso il binding sarà relativo al terminale in uso che potrà essere massimizzato con l'apposito binding da noi precedentemente creato: **Mod4+m**. Capite bene che ci sono ampie possibilità di personalizzazione e customizzazione delle varie applicazioni oppure delle singole funzione assegnate ai tasti, al mouse o direttamente come integrazie desktop. Non resta che sperimentare. Per una guida dettagliata e approfondita vi rimando alla consultazione della documentazione ufficiale relativa al bindings. **Desktop: settare lo sfondo su OpenBox ** I modi per settare lo sfondo su OpenBox sono vari e tutti validi. Per questo mi limito a descrivere brevemente  quello che uso io. L'applicativo che fa da tramite allo scopo si chiama feh. Installato senza particolari problematiche basta lanciare:
~$ feh --bg-center /percorso/immagine/file_esempio.estensione
**NB**: Per stabilire la risoluzione dell'immagine e/o magari l'affiancamento ci sono le opzioni:
--bg-tile
--bg-center
--bg-seamless
Settato lo sfondo scalato e/o affiancato e/o centrato verrà creato un file nella nostra home **~/.fehbg** che contiene il comando da richiamare all'avvio di **OpenBox**. Aggiungiamo con il nostro editor preferito al file **~/.config/openbox/autostart.sh** la stringa come da esempio:
~$ vi ~/.config/openbox/autostart.sh
eval `cat ~/.fehbg` &
**NB**: In questo modo ad ogni avvio avremo il nostro sfondo configurato. In alternativa si può aggiungere il richiamo del comando **feh** direttamente al file **~/.xinitrc** . \# End