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

m
Riga 1: Riga 1:
=Introduzione=
=== Cos'� Devil's Pie ===
Questa pagina vuole raccogliere tutte quelle cose ''simpatiche'' (EasterEggs) presenti nei programmi Debian e non solo ...
[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.


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.


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


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


==bug==
=== Configurazione ===
Interessante la segnalazione presente nella wishlist di apt-get:<br/>
La versione attuale di Devil's Pie � la 0.16.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=134156
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.


=aptitude=
Significativo in questo senso il manuale, accessibile con:
==aptitude moo==
<pre>
<pre>$ aptitude moo
# man devilspie
There are no Easter Eggs in this program.</pre>
</pre>
Nella sezione '''Bugs''', leggiamo un incoraggiante:
<pre>This manpage is useless, as it was thrown together on a train.</pre>


==aptitude -v moo==
Per fortuna ci viene in aiuto il file README, che troviamo nella directory /usr/share/doc/devilspie.
<pre>$ aptitude -v moo
There really are no Easter Eggs in this program.</pre>


==aptitude -vv moo==
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].
<pre>$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?</pre>


==aptitude -vvv moo==
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 :-).
<pre>$ aptitude -vvv moo
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.
Stop it!</pre>


==aptitude -vvvv moo==
=== Azioni ===
<pre>$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?</pre>


==aptitude -vvvv moo==
Questo � l'elenco delle azioni che possono essere applicate da devilspie all'apertura di una finestra:
<pre>$ aptitude -vvvvv moo
==== geometry ====
All right, you win.
<pre>
 
(geometry geo)
                              /----\
</pre>
                      -------/     \
Setta la dimensione e il posto in cui verr� visualizzata la finestra.
                      /               \
==== fullscreen ====
                    /               |
<pre>
  -----------------/                 --------\
(fullscreen)
  ----------------------------------------------
</pre>
 
Visualizza la finestra a pieno schermo.
Happy?</pre>
==== focus ====
 
<pre>
==aptitude -vvvvvv moo==
(focus)
<pre>$ aptitude -vvvvvv moo
</pre>
What is it?  It's an elephant being eaten by a snake, of course.</pre>
Seleziona la finestra.
 
==== center ====
==aptitude --help==
<pre>
<pre>$ aptitude --help | grep Powers
(center)
                  This aptitude does not have Super Cow Powers.</pre>
</pre>
 
Posiziona la finestra al centro dello schermo.
=apt-build=
==== maximize ====
==apt-build moo==
<pre>
<pre>$ apt-build moo
(maximize)
        (__)   ~
</pre>
        (oo)   /
Massimizza la finestra.
    _____\/___/
==== maximize_vertically ====
    /  /\ / /
<pre>
  ~  /  * /
(maximize_vertically)
    / ___/
</pre>
*----/\
Massimizza la finestra verticalmente.
    /  \
==== maximize_horizontally ====
  /  /
<pre>
  ~    ~
(maximize_horizontally)
..."Have you danced today? Discow!"...</pre>
</pre>
 
Massimizza la finestra orizzontalmente.
=Pagine di Man=
==== minimize ====
==funny-manpages==
<pre>
Per installare queste simpatiche pagine di ''man'' � sufficiente un
(minimize)
</pre>
Minimizza la finestra.
==== pin ====
<pre>
(pin)
</pre>
Visualizza la finestra iin tutti i workspaces.
==== unpin ====
<pre>
(unpin)
</pre>
Il contrario di pin.
==== set_workspace ====
<pre>
(set_workspace num)
</pre>
Setta il workspace (al posto di num va messo il numero del workspace).
==== skip_pager ====
<pre>
(skip_pager)
</pre>
Non fa visualizzare la finestra nel pager.
==== skip_tasklist ====
<pre>
(skip_tasklist)
</pre>
Non fa visualizzare la finestra nella tasklist.
==== above ====
<pre>
(above)
</pre>
Visualizza la finestra sempre sopra altre.
==== below ====
<pre>
<pre>
# apt-get install funny-manpages
(below)
</pre>
</pre>
 
Visualizza la finestra sempre sotto altre.
che, una volta terminata l'installazione, metter� a disposizione le seguenti manpage:
==== undecorate ====
* 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
 
sono tutte in inglese, ma vale la pena leggerle ;)
 
==asr-manpages==
Simile a ''funny-manpages'', ma un po' pi� tecniche, sono le '''asr-manpages''':
<pre>
<pre>
A set of humorous manual pages developed on
(undecorate)
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>
</pre>
Toglie le decorazioni del window manager.


Per installarle, basta un semplice
=== Esempi ===
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>
# apt-get install asr-manpages
(if (is (application_name) "gkrellm") (begin skip_pager (skip_tasklist)))
</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.


* man 8fun guru
Se vogliamo svolgere una sola operazione, ad esempio aprire XMMS nel workspace 2 e nient'altro, basta il solo comando senza 'begin':
* 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


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


=fortune=
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''' � un programma che eseguito da in output delle citazioni famose.
<pre>
 
(if
Per installarlo:
    (and
<pre>$ su
        (is (application_name) "gaim")
Password:
        (is (window_name) "Lista contatti")
# 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"


        [Quoted in "VMS Internals and Data Structures", V4.4, when
=== Automazione ===
        referring to system overview.]</pre>
Una volta eseguito devilspie, tutte le volte che si apre un programma per cui � stata definita un'operazione questa viene eseguita.
Per fare in modo che queste siano sempre eseguite bisogna far partire Devil's Pie automaticamente all'avvio del sistema.


=man sex=
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''' � un comando eseguibile senza bisogno di installare nulla. Eseguendolo da linea di comando oterremo un manuale a luci rosse.
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.


Peccato che non ci sia l'eseguibile!


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

contributi