Personalizzare il comportamento delle finestre con Devil's Pie: differenze tra le versioni

revisionata, inserito template versioni compatibili
(revisionata, inserito template versioni compatibili)
Riga 1: Riga 1:
== Cos'è Devil's Pie ==
{{Versioni compatibili|Debian Etch 4.0<br/>Debian Lenny 5.0<br/>Debian Squeeze<br/>Debian Sid}}
 
==Introduzione==
[http://www.burtonini.com/blog/computers/devilspie Devil's Pie] è un programma che permette di personalizzare il comportamento delle finestre dei programmi.
[http://www.burtonini.com/blog/computers/devilspie Devil's Pie] è un programma che permette di personalizzare il comportamento delle finestre dei programmi.
Ad esempio si può scegliere in quale workspace far partire un'applicazione, o impedire che compaia nella taskbar.
Ad esempio si può scegliere in quale workspace far partire un'applicazione, o impedire che compaia nella taskbar.
Riga 6: Riga 8:


== Installazione ==
== Installazione ==
Devil's Pie è presente nell'archivio ufficiale Debian, quindi per installarlo basta usare il gestore di pacchetti preferito (aptitude, synaptic, kpackage...) oppure scrivere semplicemente da shell:
Devil's Pie è presente nell'archivio ufficiale Debian, quindi per installarlo basta usare il gestore di pacchetti preferito (aptitude, synaptic, kpackage) oppure scrivere semplicemente da shell:


<pre>
<pre>
Riga 16: Riga 18:
Dalla 0.13 è stato modificato completamente il sistema di configurazione, passando da un file di configurazione xml a un sistema a s-expressions.
Dalla 0.13 è stato modificato completamente il sistema di configurazione, passando da un file di configurazione xml a un sistema a s-expressions.


Questo crea qualche problema perchè le guide che si trovano su internet si riferiscono al vecchio sistema, e l'autore non ha ancora scritto una guida per il sistema nuovo.
Questo crea qualche problema perché le guide che si trovano su internet si riferiscono al vecchio sistema, e l'autore non ha ancora scritto una guida per il sistema nuovo.


Significativo in questo senso il manuale, accessibile con:
Significativo in questo senso il manuale, accessibile con:
Riga 25: Riga 27:
<pre>This manpage is useless, as it was thrown together on a train.</pre>
<pre>This manpage is useless, as it was thrown together on a train.</pre>


Per fortuna ci viene in aiuto il file README, che troviamo nella directory /usr/share/doc/devilspie.
Per fortuna ci viene in aiuto il file README, che troviamo nella directory <code>/usr/share/doc/devilspie</code>.


Per ogni finestra su cui vogliamo eseguire un'operazione, creiamo un file nomeprogramma.ds nella directory .devilspie della nostra home, in cui scriviamo il comando con l'operazione da eseguire, formattata come [http://en.wikipedia.org/wiki/S-expression s-expression].
Per ogni finestra su cui vogliamo eseguire un'operazione, creiamo un file <code>nomeprogramma.ds</code> nella directory <code>.devilspie</code> della nostra home, in cui scriviamo il comando con l'operazione da eseguire, formattata come [http://en.wikipedia.org/wiki/S-expression s-expression].


In attesa della guida, per sapere i comandi disponibili bisogna spulciare il file src/parser.c nei sorgenti di devil's pie, e fare tante prove :-).
In attesa della guida, per sapere i comandi disponibili bisogna spulciare il file <code>src/parser.c</code> nei sorgenti di Devil's Pie, e fare tante prove :-).
Per le prove, basta richiamare devilspie da shell seguito dal file di configurazione che si vuole provare, e lanciare l'applicazione su cui deve eseguire l'operazione.
Per le prove, basta richiamare devilspie da shell seguito dal file di configurazione che si vuole provare, e lanciare l'applicazione su cui deve eseguire l'operazione.


'''Aggiornamento:'''
{{Box|Aggiornamento:disponibile un [http://wiki.foosel.net/linux/devilspie tutorial completo] in lingua inglese.}}
E' disponibile un [http://wiki.foosel.net/linux/devilspie tutorial completo] in lingua inglese.


=== Azioni ===
=== Azioni ===
Riga 100: Riga 101:


=== Determinare il nome della finestra ===
=== Determinare il nome della finestra ===
Negli esempi precedenti, le azioni vengono associate a delle applicazioni o a delle finestre attraverso le voci (application_name) o (window_name). Se la personalizzazione si riferisce alla finestra di un programma, solitamente è sufficiente usare (application_name) con il nome del programma, come negli esempi precedenti xmms, gkrellm, gaim ecc...
Negli esempi precedenti, le azioni vengono associate a delle applicazioni o a delle finestre attraverso le voci (<code>application_name</code>) o (<code>window_name</code>). Se la personalizzazione si riferisce alla finestra di un programma, solitamente è sufficiente usare (<code>application_name</code>) con il nome del programma, come negli esempi precedenti xmms, gkrellm, gaim.


Nel caso si voglia definire un comportamento di un'applicazione di cui non si è sicuri del nome, oppure di una finestra specifica di un'applicazione, si possono avere tutte le informazini necessarie avviando devilspie con l'opzione debug:
Nel caso si voglia definire un comportamento di un'applicazione di cui non si è sicuri del nome, oppure di una finestra specifica di un'applicazione, si possono avere tutte le informazioni necessarie avviando devilspie con l'opzione debug:
<pre>$devilspie --debug</pre>
<pre>$devilspie --debug</pre>
A questo punto, aprendo la finestra desisderata, si leggerà una cosa del tipo:
A questo punto, aprendo la finestra desiderata, si leggerà una cosa del tipo:
<pre>
<pre>
Window Title: 'XMMS - 48. Alanis Morissette - No pressure over cappucino (4:45)'; Application Name: 'XMMS - 48. Alanis Morissette - No pressure over cappucino (4:45)'; Class: 'xmms'; Geometry: 275x116+0+0
Window Title: 'XMMS - 48. Alanis Morissette - No pressure over cappucino (4:45)'; Application Name: 'XMMS - 48. Alanis Morissette - No pressure over cappucino (4:45)'; Class: 'xmms'; Geometry: 275x116+0+0
Riga 113: Riga 114:
</pre>
</pre>
Nell'esempio si vedono le informazioni relative all'applicazione xmms e al suo plugin [http://figz.com/gdancer/ gDancer], e viene anche indicato che sono già state applicate delle azioni su quest'ultimo: non compare nel pager né nella barra delle applicazioni, e viene visualizzato in tutti i workspaces.
Nell'esempio si vedono le informazioni relative all'applicazione xmms e al suo plugin [http://figz.com/gdancer/ gDancer], e viene anche indicato che sono già state applicate delle azioni su quest'ultimo: non compare nel pager né nella barra delle applicazioni, e viene visualizzato in tutti i workspaces.
I comandi corrispondenti del file gdancer.ds sono:
I comandi corrispondenti del file <code>gdancer.ds</code> sono:
<pre>
<pre>
(if (is (window_class) "dancer")  
(if (is (window_class) "dancer")  
1 508

contributi