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

nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1: Riga 1:
=== Cos'è Devil's Pie ===
=Introduzione=
[http://www.burtonini.com/blog/computers/devilspie Devil's Pie] è un programma che permette di personalizzare il comportamento delle finestre dei programmi.
Questa pagina vuole raccogliere tutte quelle cose ''simpatiche'' (EasterEggs) presenti nei programmi Debian e non solo ...
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.


=== Installazione ===
=apt-get=
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:
==apt-get moo==
<pre>
$ apt-get moo
        (__)
        (oo)
  /------\/
  / |    ||
*  /\---/\
    ~~  ~~
...."Have you mooed today?"...</pre>


==apt-get --help==
<pre>
<pre>
# apt-get install devilspie
$ apt-get --help | grep Powers
                      This APT has Super Cow Powers.
</pre>
</pre>


=== Configurazione ===
==bug==
La versione attuale di Devil's Pie è la 0.16.
Interessante la segnalazione presente nella wishlist di apt-get:<br/>
Dalla 0.13 è stato modificato completamente il sistema di configurazione, passando da un file di configurazione xml a un sistema a s-expressions.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=134156


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:
=aptitude=
==aptitude moo==
<pre>$ aptitude moo
There are no Easter Eggs in this program.</pre>
 
==aptitude -v moo==
<pre>$ aptitude -v moo
There really are no Easter Eggs in this program.</pre>
 
==aptitude -vv moo==
<pre>$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?</pre>
 
==aptitude -vvv moo==
<pre>$ aptitude -vvv moo
Stop it!</pre>
 
==aptitude -vvvv moo==
<pre>$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?</pre>
 
==aptitude -vvvv moo==
<pre>$ aptitude -vvvvv moo
All right, you win.
 
                              /----\
                      -------/      \
                      /              \
                    /                |
  -----------------/                  --------\
  ----------------------------------------------
 
Happy?</pre>
 
==aptitude -vvvvvv moo==
<pre>$ aptitude -vvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.</pre>
 
==aptitude --help==
<pre>$ aptitude --help | grep Powers
                  This aptitude does not have Super Cow Powers.</pre>
 
=apt-build=
==apt-build moo==
<pre>$ apt-build moo
        (__)    ~
        (oo)  /
    _____\/___/
    /  /\ / /
  ~  /  * /
    / ___/
*----/\
    /  \
  /  /
  ~    ~
..."Have you danced today? Discow!"...</pre>
 
=Pagine di Man=
==funny-manpages==
Per installare queste simpatiche pagine di ''man'' � sufficiente un
<pre>
<pre>
# man devilspie
# apt-get install funny-manpages
</pre>
</pre>
Nella sezione '''Bugs''', leggiamo un incoraggiante:
<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.
che, una volta terminata l'installazione, metter� a disposizione le seguenti manpage:
* man 1fun date
* man 1fun echo
* man 1fun gong
* man 1fun grope
* man 1fun party
* man 1fun rescrog
* man 1fun rtfm
* man 1fun rm
* man 1fun tm
* man 1fun xkill
* man 1fun baby
* man 1fun celibacy
* man 1fun flog
* man 1fun uubp
* man 1fun condom
* man 1fun flame
* man 1fun xlart
* man 6fun sex
* man 3fun strfry


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].
sono tutte in inglese, ma vale la pena leggerle ;)


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 :-).
==asr-manpages==
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
Simile a ''funny-manpages'', ma un po' pi� tecniche, sono le '''asr-manpages''':
<pre>
A set of humorous manual pages developed on
alt.sysadmin.recovery (don't treat them seriously!).
They document a set of really useful tools that for some
strange reason are not included in any implementation of
Unix. This includes such famous commands as lart, sysadmin,
luser, bosskill and others.
The authors recommend these man pages should be installed
on every system.
</pre>


=== Esempi ===
Per installarle, basta un semplice
Supponiamo di avere gkrellm su tutti i workspace, ma di non voler vedere la sua miniatura nel pager.
Creiamo un file gkrellm.ds e scriviamo:
<pre>
<pre>
(if (is (application_name) "gkrellm") (begin skip_pager (skip_tasklist)))
# apt-get install asr-manpages
</pre>
</pre>
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 svolgere una sola operazione, ad esempio aprire XMMS nel workspace 2 e nient'altro, basta il solo comando senza 'begin':
* man 8fun guru
* man 8fun nuke
* man 8fun bosskill
* man 8fun knife
* man 8fun pmsd
* man 8fun ctluser
* man 8fun luser
* man 5fun normality
* man 2fun people
* man 1fun lart
* man 1fun c
* man 1fun vslave
* man 1fun sysadmin
* man 1fun think
* man 1fun whack
* man 3fun chastise


<pre>
=ddate=
(if (is (application_name) "XMMS") (set_workspace 2))
'''ddate''' � un programma che converte una data nel formato Discordiano (''cfr.: [http://it.wikipedia.org/wiki/Discordianesimo Discordianesimo].</br>
Ecco un esempio:
<pre>$ ddate
Today is Sweetmorn, the 50th day of Confusion in the YOLD 3171
Celebrate Confuflux
</pre>
</pre>


Un altro esempio un po' più complesso, se si vuole mostrare la lista contatti di gaim su tutti i workspaces, una grandezza di 340x630 alla posizione (4, 150), il comando è questo:
=fortune=
<pre>
'''fortune''' � un programma che eseguito da in output delle citazioni famose.
(if
 
    (and
Per installarlo:
        (is (application_name) "gaim")
<pre>$ su
        (is (window_name) "Lista contatti")
Password:
    )
# apt-get install fortune
    (begin
        (pin)
        (geometry "340x630+4+150")
    )
)
</pre>
</pre>
In esecuzione:
<pre>$ fortune
For the fashion of Minas Tirith was such that it was built on seven levels,
each delved into a hill, and about each was set a wall, and in each wall
was a gate.
                -- J.R.R. Tolkien, "The Return of the King"


=== Automazione ===
        [Quoted in "VMS Internals and Data Structures", V4.4, when
Una volta eseguito devilspie, tutte le volte che si apre un programma per cui è stata definita un'operazione questa viene eseguita.
        referring to system overview.]</pre>
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 xfce), è sufficiente creare un link all'eseguibile di devilspie nella directory Desktop/Autostart della nostra home.
=man sex=
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.
'''man sex''' � un comando eseguibile senza bisogno di installare nulla. Eseguendolo da linea di comando oterremo un manuale a luci rosse.


Peccato che non ci sia l'eseguibile!


----
=Varie=
:[[Utente:Gnappa|Gnappa]] 17:21, Dic 8, 2005 (EST)
Parlando di mucche (cosa molto frequente in Debian, a quanto si vede) � d'obbligo visitare la seguente pagina: [[Cows]]
10

contributi