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

m
nessun oggetto della modifica
(Personalizzare le finestre con Devil's Pie)
 
mNessun oggetto della modifica
 
(24 versioni intermedie di 7 utenti non mostrate)
Riga 1: Riga 1:
=== Cos'è Devil's Pie ===
{{Versioni compatibili|Squeeze|Wheezy}}
Devil's Pie è un programma che permette di personalizzare il comportamento delle finestre dei programmi.
==Introduzione==
[http://www.burtonini.com/blog/computers/devilspie Devil's Pie] è un programma che permette di personalizzare il comportamento delle finestre dei programmi.<br/>
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.


Ogni volta che viene aperta un'applicazione, e quindi creata la sua finestra, Devil's Pie legge nei files di configurazione l'operazione da eseguire su di essa.
Ogni volta che viene aperta un'applicazione, e quindi creata la sua finestra, Devil's Pie legge nei file di configurazione l'operazione da eseguire su di essa.


=== 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 oppure scrivere semplicemente da [[shell]]:


<pre>
<pre>
Riga 12: Riga 13:
</pre>
</pre>


=== Configurazione ===
== Configurazione ==
La versione attuale di Devil's Pie è la 0.16.
La versione attuale di Devil's Pie è la 0.17.
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 26:
<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 :-).<br/>
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.
 
{{Box|Aggiornamento:|È disponibile un [http://wiki.foosel.net/linux/devilspie tutorial completo] in lingua inglese.}}
 
=== Azioni ===
 
Questo è l'elenco delle azioni che possono essere applicate da devilspie all'apertura di una finestra:
 
; <code>(geometry geo)</code>: Setta la dimensione e il posto in cui verrà visualizzata la finestra.
 
; <code> (fullscreen) </code>: Visualizza la finestra a pieno schermo.
 
; <code> (focus) </code>: Seleziona la finestra.
 
; <code> (center) </code>: Posiziona la finestra al centro dello schermo.
 
; <code> (maximize) </code>: Massimizza la finestra.
 
; <code> (maximize_vertically) </code>: Massimizza la finestra verticalmente.
 
; <code> (maximize_horizontally) </code>: Massimizza la finestra orizzontalmente.
 
; <code> (minimize) </code>: Minimizza la finestra.
 
; <code> (pin) </code>: Visualizza la finestra iin tutti i workspaces.
 
; <code> (unpin) </code>: Il contrario di pin.
 
; <code> (set_workspace num) </code>: Setta il workspace (al posto di num va messo il numero del workspace).
 
; <code> (skip_pager) </code>: Non fa visualizzare la finestra nel [[pager]].
 
; <code> (skip_tasklist) </code>: Non fa visualizzare la finestra nella tasklist.
 
; <code> (above) </code>: Visualizza la finestra sempre sopra altre.
 
; <code> (below) </code>: Visualizza la finestra sempre sotto altre.
 
; <code> (undecorate) </code>: Toglie le decorazioni del window manager.


=== Esempi ===
=== Esempi ===
Supponiamo di avere gkrellm su tutti i workspace, ma di non voler vedere la sua miniatura nel pager.
Supponiamo di avere <code>gkrellm</code> su tutti i workspace, ma di non voler vedere la sua miniatura nel pager.<br/>
Creiamo un file gkrellm.ds e scriviamo:
Creiamo un file <code>gkrellm.ds</code> e scriviamo:
<pre>
<pre>
(if (is (application_name) "gkrellm") (begin skip_pager (skip_tasklist)))  
(if (is (application_name) "gkrellm") (begin skip_pager (skip_tasklist)))  
</pre>
</pre>
Questo comando fa svogere due operazioni, l'eliminazione dal pager e dalla taskbar. Per applicare operazioni multiple è stato necessario iniziare l'elenco dei comandi con 'begin'. Da notare anche l'annidamento delle parentesi.
Questo comando fa svolgere due operazioni, l'eliminazione dal pager e dalla taskbar. Per applicare operazioni multiple è stato necessario iniziare l'elenco dei comandi con 'begin'. Da notare anche l'annidamento delle parentesi.


Se vogliamo svoglere una sola operazione, ad esempio aprire XMMS nel workspace 2 e nient'altro, basta il solo comando senza 'begin':
Se vogliamo svolgere una sola operazione, ad esempio aprire <code>XMMS</code> nel workspace 2 e nient'altro, basta il solo comando senza 'begin':


<pre>
<pre>
(if (is (application_name) "XMMS") (set_workspace 2))
(if (is (application_name) "XMMS") (set_workspace 2))
</pre>
</pre>
Un altro esempio un po' più complesso, se si vuole mostrare la lista contatti di <code>gaim</code> su tutti i workspaces, una grandezza di 340x630 alla posizione (4, 150), il comando è questo:
<pre>
(if
    (and
        (is (application_name) "gaim")
        (is (window_name) "Lista contatti")
    )
    (begin
        (pin)
        (geometry "340x630+4+150")
    )
)
</pre>
=== Determinare il nome della finestra ===
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 <code>xmms, gkrellm, gaim.</code>
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>
A questo punto, aprendo la finestra desiderata, si leggerà una cosa del tipo:
<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: 'GDancer'; Application Name: 'Xmms'; Class: 'dancer'; Geometry: 100x173+562+132
Skipping pager
Skipping tasklist
Setting pinned
</pre>
Nell'esempio si vedono le informazioni relative all'applicazione <code>xmms</code> 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 <code>gdancer.ds</code> sono:
<pre>
(if (is (window_class) "dancer")
  (begin
(skip_pager)
(skip_tasklist)
(pin)
  )
)
</pre>
== Automazione ==
Una volta eseguito devilspie, tutte le volte che si apre un programma per cui è stata definita un'operazione questa viene eseguita.<br/>
Per fare in modo che queste siano sempre eseguite bisogna far partire Devil's Pie automaticamente all'avvio del sistema.
Con gli ambienti desktop che seguono gli standard freedesktop (come <code>Xfce</code>), è sufficiente creare un link all'eseguibile di devilspie nella directory <code>Desktop/Autostart</code> della nostra home.<br/>
In generale, molto più semplicemente, al momento dello spegnimento si può salvare la sessione con devilspie avviato, in modo da ritrovarselo a ogni accesso successivo.
{{Autori
|Autore = [[Utente: Gnappa|Gnappa]] 17:21, Dic 8, 2005 (EST)
|Estesa_da =
:[[Utente: ilbeppe|ilbeppe]] 21:05, Mar 31, 2006 (EST)
|Verificata_da =
|Numero_revisori = 0
}}
[[Categoria:Window Manager]]
3 581

contributi