.: Devil’s Pie ou l’art de manipuler ses fenêtres :.
0. Pour la petite histoire
Qu’est-ce que Devil’s Pie?
Et bien pour faire simple nous dirons que c’est un utilitaire de fenêtres (“A window-matching utility”); il permet par exemple de dire qu’une telle fenêtre sera toujours en dessous (ou au dessus) des autres, qu’au chargement d’une telle application elle doit directement aller sur le deuxième workspace ou encore qu’une autre doit se retrouver sur tous les workspace.
Petit historique
Jusqu’à la version 0.12 de Devil’s Pie, le fichier de configuration était en XML. Je n’aborderais pas cette possibilité vu qu’au fur et à mesure, toutes les distributions GNU/Linux proposeront une version supérieure à la 0.12, ce qui est déjà le cas de Debian en testing.
A partir de la version 0.13, Devil’s Pie a été complétement réécris est utilise dorénavant les S-EXPRESSIONS: plus simple, plus concis, plus clair. Je ne traiterais donc que des S-EXPRESSIONS dans ce how-to et donc de Devil’s Pie à partir de la version 0.13 et supérieure.
Concrétement que puis-je faire avec Devil’s Pie?
Personnellement, je l’utilise en complément à Eterm pour en faire une console transparente incrustée dans le bureau mais aussi pour automatiquement envoyer Thunderbird sur le deuxième workspace. Autrefois, je l’ai également utilisé pour XMMS.
En réalité, les possibilités sont quasi infinies à partir du moment où vous avez le besoin de manipuler de façon automatique certaines applications.
Y’a t-il un site officiel de Devil’s Pie?
Oui, celui de Ross Burton, son auteur: burtonini.com/blog/computers/devilspie
1. Installer Devil’s Pie
Et bien, faisons simple et rapide, je vous passe les détails d’une installation depuis les sources
Si vous êtes en Debian stable, je vous invite à ajouter les dépots testing le temps d’installer Devil’s Pie. En effet, la Debian stable est resté à la version 0.8 …
(avec privilèges root)
2. Configurer Devil’s Pie
C’est dans ce repertoire que nous mettrons nos fichiers de configuration.
pour chaque configuration, nous créerons un fichier dont l’extension sera “.ds”.
J’ai par exemple un fichier thunderbird.ds et xterm.ds
Alors, nous allons commencer avec un exemple concret, les miens
thunderbird.ds
dira à Devil’s Pie que si il rencontre une application dont le nom est “mozilla-thunderbird-bin” alors il doit la déplacer dans le coin supérieur gauche de l’écran et la mettre sur le deuxième workspace.
eterm.ds
dira à Devil’s Pie que si il rencontre une application dont le nom est “Eterm” alors il doit l’enlever de la tasklist, du pager, la mettre sur tous les workspace et qu’elle reste toujours en dessous des autres applications.
pour tester vos (premiers) essais, tapez simplement dans un terminal:
ou encore
et admirez le résultat …
3. Toutes les actions possible
Vous aurez remarqué certaines actions déjà comme “below”, ou encore “set_workspace”.
Quelles sont donc toutes les actions possibles (à l’heure où j’ecris ces quelques lignes)?
action — valeur attendue (exemple) — commentaire
- “geometry” — “80x15+0-18” (chaine de caractères) — geométrie de la fenêtre
- “fullscreen” — / — plein ecran
- “maximize” — / — maximiser la fenêtre
- “maximize_vertically” — / — maximiser verticalement la fenêtre
- “maximize_horizontally” — / — maximiser horizontalement la fenêtre
- “minimize” — / — minimiser la fenêtre
- “shade” — / — enrouler la fenêtre
- “unshade” — / — dérouler la fenêtre
- “pin” — / — afficher sur tous les workspace
- “unpin” — / — ne pas afficher sur tous les workspace
- “set_workspace” — 2 (entier) — envoyer vers le worspace spécifé
- “skip_pager” — / — ignorer l’affichage dans le pager (Workspace Switcher de Gnome par exemple)
- “skip_tasklist” — / — ignorer la liste des tâches (Windows Selector de Gnome par exemple)
- “above” — / — toujours au dessus des autres fenêtres
- “below” — / — toujours en dessous des autres fenêtres
- “undecorate” — / — supprimer toutes les décorations de fenêtre (dock panel)
- “wintype” — ? — type de fenêtre
A l’heure où j’ecris ces quelques lignes, il n’existe malheureusement pas de manuel, de documentation.
Cela viendra, mais Ross Burton étant seul à travailler sur ce projet, pas tout de suite …
Il existe cependant une alternative viable à cela: le code source.
N’ayez crainte, ce n’est pas si compliqué que cela.
Vous téléchargez la dernière archive disponible sur le site officiel, l’ouvrez et allez dans le repertoire /src où vous trouverez le fichier parser.c: vous y trouverez toutes les actions disponibles ainsi que le type de paramètre à donner.
4. Déterminer le nom des applications & fenêtres
Vous avez remarquez que dans les exmples fournis, le nom des applications sont bien définies: “mozilla-thunderbird-bin” et “Eterm”.
Pour determiner le nom des applications & fenêtres, il vous suffit de créer le fichier ~/.devilspie/test.ds en y ajoutant la ligne i[/i]
Relancez Devil’s Pie pour obtenir toutes les infos nécessaires sur vos applications & fenêtres:
5. Les “matchers”
Nous avons vu dans les deux exemples un matcher du type:
Ce qui permet de déjà faire pas mal de chose.
Cependant certains trouveront probablement que c’est trop limité pour leurs besoins. Pas de problème.
Tout comme expliqué ci-dessus, vous trouverez plus d’informations dans le fichier /src/parser.c de l’archive devilspie.tar.gz que vous trouverez sur le site officiel et également dans le README de cette même archive.
A titre d’exemple, vous pourriez utiliser une telle expression:
6. Executer Devil’s Pie automatiquement au démarrage
Et oui, c’est quand-même mieux que de lancer manuellement Devil’s Pie depuis une console à chaque démarrage …
Pour les utilisateurs de Gnome, il vous suffit d’aller dans Preferences / Sessions et de vous rendre dans le dernier onglet “Startup programs”.
Là, vous ajoutez ceci: Startup command: devilspie; Order: 40
Pour les utilisateurs de KDE, je ne sais pas: quelqu’un dans la salle?
Pour les utilisateurs de BlackBox, FluxBox, …, il vous suffit d’ajouter dans le fichier ~/.xinitrc la ligne devilspie &
7. Partager son expérience Devil’s Pie
Maintenant que tout a été dit et que vous êtes devenu un as de l’utilisation de Devil’s Pie, je vous invite à partager votre expérience et ainsi vos fichiers .ds (enfin, leur contenu).
Inutile de me poser des questions sur Eterm ici, je ferais prochainement un how-to à ce sujet (console transparente incrustée dans le bureau).
Par contre, si vous avez toute autre question sur Devil’s Pie, vous pouvez toujours les poser ici, j’essaierais d’y répondre.
Enjoy 8)