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 wm: fluxbox,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:
- 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.
- 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 **
<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>
</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>
</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:
**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-seamlessSettato 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