Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
devilspie [Le 15/11/2016, 13:42] 109.7.55.182 [Introduction] |
devilspie [Le 22/07/2024, 10:18] (Version actuelle) 86.202.209.181 [Configuration manuelle simple] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>personnalisation}} | + | {{tag>Xenial personnalisation}} |
---- | ---- | ||
+ | ====== Devil's Pie ===== | ||
- | ===== Introduction ===== | + | Devil's Pie est un logiciel ((de **Ross Burton**, [[http://www.burtonini.com|Site de l'auteur]], [[ross@burtonini.com|Contact]])) publié sous licence GNU GPL, |
- | + | qui permet de détecter les caractéristiques des fenêtres et de leur appliquer des règles de comportement. Il permet donc d'ouvrir une fenêtre sur un bureau spécifique et / ou de lui définir une option d'affichage (taille de la fenêtre, transparence, focus, minimisation ...). | |
- | Devil's Pie est un logiciel qui permet de détecter les caractéristiques des fenêtres et de leur appliquer des règles de comportement. Il permet donc d'ouvrir une fenêtre sur un bureau spécifique et / ou de lui définir une option d'affichage (taille de la fenêtre, transparence, focus, minimisation ...). | + | |
Une fois paramétré pour un logiciel donné, Devil's Pie peut s'oublier (il doit cependant être lancé en mémoire au démarrage) : on se contente de lancer le programme sur lequel on souhaite une action, et celle-ci s'applique de façon totalement transparente. | Une fois paramétré pour un logiciel donné, Devil's Pie peut s'oublier (il doit cependant être lancé en mémoire au démarrage) : on se contente de lancer le programme sur lequel on souhaite une action, et celle-ci s'applique de façon totalement transparente. | ||
- | Devil's Pie marche normalement avec tous les gestionnaires de fenêtres (xfwm, metacity, compiz ...). | + | Devil's Pie marche normalement avec n'importe quel [[:gestionnaire de fenêtres]] (xfwm, metacity, compiz ...) X11, mais :!: PAS avec [[wayland|Wayland]]. Devilspie ne fonctionne donc pas sous [[gnome-shell|Gnome-Shell]] pour Wayland (il faut alors utiliser l'extension gnome-shell [[https://extensions.gnome.org/extension/16/auto-move-windows/|auto-move-windows]]) :!:. |
- | Il s'agit d'un logiciel libre de **Ross Burton** (http://www.burtonini.com , <ross@burtonini.com>) publié sous la license GNU GPL. | + | |
- | + | ||
- | A noter qu'il existe une version avec interface graphique pour créer les règles de devilspie : gdevilspie ([[http://code.google.com/p/gdevilspie/]]) | + | |
- | ===== Avertissement ! ===== | + | |
- | + | ||
- | Ce texte décrit les règles de paramétrage de devilspie à **partir de la version 0.13** (complète réécriture du logiciel ; auparavant le paramétrage était totalement différent). | + | |
+ | <note Important>Cet article porte sur **Devilspie**, mais il existe également un fork de Devilspie, nommé [[http://www.nongnu.org/devilspie2/|Devilspie2]], qui se configure différemment, via des scripts Lua simples. __Attention à ne pas les confondre__.</note> | ||
===== Installation ===== | ===== Installation ===== | ||
- | Il est possible d'installer Devil's pie à partir de l'Ubuntu store (ou de Synaptic). Le dépôt [[synaptic#ce_que_synaptic_est_capable_de_faire|"Universe" doit être activé]]. | + | [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>devilspie]]**. |
- | Alternativement, une installation en ligne de commande est possible en rentrant dans un terminal la commande suivante : | + | Pour que Devilspie soit actif à chaque démarrage, il faudra ajouter |
- | <code> | + | <code>devilspie</code> dans la liste des applications [[:tutoriel:application_demarrage|démarrées automatiquement]] par votre session. |
- | sudo apt-get install devilspie | + | |
- | </code> | + | |
- | ou | + | |
- | <code> | + | |
- | sudo apt-get install gdevilspie | + | |
- | </code> | + | |
- | si vous voulez la version avec interface graphique. | + | |
===== Configuration manuelle simple ===== | ===== Configuration manuelle simple ===== | ||
- | L'utilisation la plus courante de devilspie, c'est d'affecter un logiciel à un bureau spécifique, ou de le démarrer en mode "minimisé". Pour ce faire : | + | L'utilisation la plus courante de devilspie, c'est d'affecter un logiciel à un bureau spécifique, ou de positionner sa fenêtre (mode "minimisé", centré, en haut à gauche, ...). Pour ce faire : |
- | * installer devilspie par la commande **sudo apt install devilspie** (ou passer par la logithèque). | + | * Créer un [[:fichier_cache|répertoire caché]] **/.devilspie** dans votre //Dossier Personnel// (si vous préférez le terminal : **mkdir ~/.devilspie)**. \\ :!: Si les fichiers de règles ne sont pas placés dans le répertoire **~/.devilspie** mais dans **/etc/devilspie**, les règles s'appliqueront alors à **tous** les utilisateurs. Mais les règles devront alors être manipulées en mode [[:sudo|administrateur]]. :!: |
- | * Créer un répertoire caché dans le répertoire utilisateur par défaut (**/Home/vous/**), appelé **.devilspie** (pour voir les répertoires cachés : ctrl + H). | + | * Dans ce répertoire caché, créer avec un éditeur de texte quelconque ([[gedit|gedit]], [[mousepad|mousepad]], [[nano|nano]], ...) un fichier par logiciel qu'on souhaite manipuler. Le fichier est un fichier texte avec un extension **.ds** Le nom n'a pas d'importance, mais il est logique de donner le nom du programme manipulé. Par exemple **Thunderbird.ds**. |
- | * Dans le répertoire caché, créer un fichier par logiciel qu'on souhaite manipuler. Le fichier est un fichier texte avec un extension **.ds** Le nom n'a pas d'importance, mais il est logique de donner le nom du programme manipulé. Par exemple **Thunderbird.ds**. | + | * À l'intérieur du fichier, **on colle les commandes** pour engendrer le comportement souhaité. Voir les exemple ci-dessous. |
- | * A l'intérieur du fichier, **on colle les commandes** pour engendrer le comportement souhaité. Voir les exemple ci-dessous. | + | |
Gardons l'exemple de Thunderbird pour la suite : | Gardons l'exemple de Thunderbird pour la suite : | ||
Ligne 42: | Ligne 29: | ||
__**Démarrer Thunderbird sur le bureau 3.**__ | __**Démarrer Thunderbird sur le bureau 3.**__ | ||
- | <code> | + | <file> |
- | ; generated_rule Thunderbird | + | (if |
- | ( if | + | (is (application_name) "Thunderbird") |
- | ( begin ( contains ( application_name ) "Thunderbird" ) ) | + | (set_workspace 3) |
- | ( begin ( set_workspace 3 ) ( println "match" ) ) | + | |
) | ) | ||
- | </code> | + | </file> |
__**Démarrer Thunderbird en mode minimisé**__ | __**Démarrer Thunderbird en mode minimisé**__ | ||
- | <code> | + | <file> |
- | ; generated_rule Thunderbird | + | (if |
- | ( if | + | (is (application_name) "Thunderbird") |
- | ( begin ( contains ( application_name ) "Thunderbird" ) ) | + | (minimize) |
- | ( begin ( minimize ) ( println "match" ) ) | + | |
) | ) | ||
- | </code> | + | </file> |
+ | On peut remplacer (minimize) par (center) si on veut centrer la fenêtre. | ||
+ | |||
+ | __**Démarrer Thunderbird avec la fenêtre positionnée en haut à gauche**__ | ||
+ | |||
+ | <file> | ||
+ | (if | ||
+ | (is (application_name) "Thunderbird") | ||
+ | (geometry "+1+0") | ||
+ | ) | ||
+ | </file> | ||
+ | Dans cet exemple, "+1" positionne la fenêtre à 1 pixel du bord gauche de l'écran, et "+0" la positionne à 0 pixel du haut. La fenêtre n'a pas de dimension imposée. | ||
+ | |||
+ | Pour démarrer en haut et à **droite** de l'écran : **(geometry "-1+0")**. En **bas** et à **droite** : **(geometry "-1-1")**. En **bas** et à **gauche** : **(geometry "+0-1")**. | ||
+ | |||
+ | __**Démarrer Thunderbird avec la fenêtre positionnée en haut à gauche __ET__ avec une dimension imposée**__ | ||
+ | |||
+ | <file> | ||
+ | (if | ||
+ | (is (application_name) "Thunderbird") | ||
+ | (geometry "1200x1150+1+0") | ||
+ | ) | ||
+ | </file> | ||
+ | Dans cet exemple, "1200x1150" est la taille imposée à la fenêtre ; "+1+0" est sa position (en haut à gauche). | ||
__**Démarrer Thunderbird sur le bureau 3 __ET__ en mode minimisé**__ | __**Démarrer Thunderbird sur le bureau 3 __ET__ en mode minimisé**__ | ||
- | <code> | + | <file> |
- | ; generated_rule Thunderbird | + | (if |
- | ( if | + | (is (application_name) "Thunderbird") |
- | ( begin ( contains ( application_name ) "Thunderbird" ) ) | + | (begin (set_workspace 3) (minimize) ) |
- | ( begin ( set_workspace 3 ) ( minimize ) ( println "match" ) ) | + | |
) | ) | ||
- | </code> | + | </file> |
- | Créez le nombre de fichier nécessaire (1 par programme) et adaptez le **nom du programme** et le N° de bureau (**set_workspace**) qu'on y trouve en fonction de votre besoin. | + | Dans cet exemple, il y a __2 actions__ (bureau 3 ET minimiser), et elles doivent être __encadrées__ par un **(begin ...)**. (begin) est inutile pour une seule action (cf. exemples 1et 2). |
- | Une fois un fichier de paramétrage créé pour chaque programme qu'on souhaite manipuler, il faut démarrer **devilspie** pour que cela fonctionne : | + | __**Démarrer TOUS les logiciels avec une fenêtre centrée**__ |
+ | |||
+ | <file> | ||
+ | (debug | ||
+ | (center) | ||
+ | ) | ||
+ | </file> | ||
+ | |||
+ | __**ASTUCE**__ : on peut avoir __un seul__ fichier de configuration pour tous ses logiciels, à condition de l'encadrer par une fonction (begin). Exemple : | ||
+ | <file> | ||
+ | (begin | ||
+ | |||
+ | (if | ||
+ | (is (application_name) "Thunderbird") | ||
+ | (set_workspace 3) | ||
+ | ) | ||
+ | |||
+ | (if | ||
+ | (is (application_name) "gmusicbrowser") | ||
+ | (begin (minimize) (set_workspace 2) ) | ||
+ | ) | ||
+ | |||
+ | (if | ||
+ | (is (application_name) "Firefox") | ||
+ | (geometry "1200x1150+1+0") | ||
+ | ) | ||
+ | |||
+ | ) | ||
+ | </file> | ||
+ | Ici, Thunderbird et gmusicbrowser sont envoyés sur 2 bureaux différents (et gmusicbrowser est en plus minimisé), Firefox est affiché en haut à gauche avec une fenêtre de taille 1200x1150. Comme le montrent 2 des exemples plus haut, **(begin)** permet soit de regrouper plusieurs programmes dans un seul fichier, soit de regrouper plusieurs options pour un même programme ; on peut tout à fait (cf. l'exemple avec gmusicbrowser) mettre un begin (fonction1 fonction2) __dans__ un begin (programme1 programme2). | ||
+ | |||
+ | En fonction de votre besoin, créez le nombre de fichier nécessaire (1 fichier par programme, ou un fichier global) et adaptez le **nom du programme** et le N° de bureau (**set_workspace**) qu'on trouve dans les exemples précédents. | ||
+ | |||
+ | |||
+ | __**Une fois un fichier de paramétrage créé, il faut démarrer devilspie pour que cela fonctionne :**__ | ||
* __ponctuellement__ : ouvrir une invite de commande via alt+F2, et y taper **devilspie**. | * __ponctuellement__ : ouvrir une invite de commande via alt+F2, et y taper **devilspie**. | ||
- | * __Démarrage automatique__ : gestionnaire de paramètre > Session et démarrage > ajouter une commande **devilspie** (Devilspie se lancera alors à chaque démarrage de votre session Ubuntu). | + | * __Paramétrer un démarrage automatique via votre interface graphique__ : |
+ | - dans XFCE : "gestionnaire de paramètre > session et démarrage > démarrage automatique d'application > ajouter" ; | ||
+ | - dans Ubuntu gnome : "Applications > Applications au démarrage > ajouter" | ||
+ | * Puis dans la zone "**commande**", ajouter la commande "**devilspie**" (Devilspie se lancera alors à chaque démarrage de votre session Ubuntu). | ||
+ | * __Paramétrer un démarrage automatique via le terminal__ : | ||
+ | <code>ln -s -f /usr/share/applications/devilspie.desktop ~/.config/autostart/devilspie.desktop</code> | ||
+ | Paramétrer votre démarrage automatique en mode graphique ou en mode texte est équivalent, mais ne faite pas les 2 méthodes à la fois. | ||
- | 3 remarques importantes : | + | __**4 remarques importantes :**__ |
* Il ne faut pas faire de faute dans le nom du logiciel, ou cela ne marchera pas. | * Il ne faut pas faire de faute dans le nom du logiciel, ou cela ne marchera pas. | ||
- | * Les noms de programmes sont sensibles à la case : **F**irefox marche, mais pas firefox (sans majuscule). | + | * Les noms de programmes sont sensibles à la casse : **F**irefox marche, mais pas firefox (sans majuscule). Certains logiciels demandent une majuscule (**F**irefox), et d'autres non (**g**musicbrowser). |
* un fois lancé, devilspie __ne prend plus en compte__ les modifications ou ajouts des fichiers **.ds**. Pour que ces modifications / ajouts prennent effet, il faut donc redémarrer devilspie (rédémarrage de session, ou pour les adeptes du terminal : **pkill devilspie** [tue le processus], suivi d'un **devilspie** [redémarre le processus]). | * un fois lancé, devilspie __ne prend plus en compte__ les modifications ou ajouts des fichiers **.ds**. Pour que ces modifications / ajouts prennent effet, il faut donc redémarrer devilspie (rédémarrage de session, ou pour les adeptes du terminal : **pkill devilspie** [tue le processus], suivi d'un **devilspie** [redémarre le processus]). | ||
+ | * Certains logiciels n'ont pas de nom stable. C'est le cas de Chromium, qui associe un nom d'onglet et le nom "Chromium". Le nom change tout le temps. Dans ce cas, une recherche sur le **nom complet**, du type ''(is (application_name) "Chromium")'' ne fonctionne __pas__. Il faut alors chercher sur une **partie du nom**, en utilisant l'option "contains", de cette façon : ''(contains (application_name) "Chromium")''. Là, l'identification du navigateur fonctionne. | ||
- | Pour d'autres fonctionnalités qu'une minimisation ou placer un programme sur un bureau précis, voir les chapitres suivants. | + | Pour d'autres fonctionnalités, voir les chapitres suivants. |
===== Configuration avancée ===== | ===== Configuration avancée ===== | ||
- | Pour la version graphique gdevilspie, vous la trouvez dans votre menu, section accessoire. | ||
- | Si les fichiers de règle ne sont pas placés dans le répertoire **~/.devilspie** mais dans **/etc/devilspie**, les règles s'appliqueront alors à **tous** les utilisateurs. Mais les règles devront alors être manipulées en mode super-utilisateur (root). | + | ==== Commentaires ==== |
+ | Une ligne de **commentaire** peut-être introduite dans le fichier. Elle commence par un **;** | ||
+ | Par exemple : | ||
+ | <file> | ||
+ | ; ceci est un commentaire | ||
+ | ( if | ||
+ | ( is ( application_name ) "Thunderbird" ) | ||
+ | ( set_workspace 3 ) | ||
+ | ) | ||
+ | </file> | ||
==== Les actions possibles ==== | ==== Les actions possibles ==== | ||
Ligne 127: | Ligne 183: | ||
Par exemple faire apparaître [[gedit|Gedit]] sur TOUS les bureaux (option **pin** - le contenu de chaque fenêtre sera identique aux autres) : | Par exemple faire apparaître [[gedit|Gedit]] sur TOUS les bureaux (option **pin** - le contenu de chaque fenêtre sera identique aux autres) : | ||
- | <code> | + | <file> |
- | ; generated_rule Gedit | + | ; Duplique la fenêtre Gedit sur chaque bureau |
- | ( if | + | ( if |
- | ( begin ( contains ( application_name ) "Gedit" ) ) | + | ( is ( application_name ) "Gedit" ) |
- | ( begin ( pin ) ( println "match" ) ) | + | ( pin ) |
) | ) | ||
- | </code> | + | </file> |
- | + | ||
- | Placer systématiquement [[firefox|Firefox]] en haut à gauche ("+0+0"), avec une largeur de 1300 px et une hauteur de 1150 px ("1200x1150") : | + | |
- | <code> | + | |
- | ; generated_rule Firefox | + | |
- | ( if | + | |
- | ( begin ( contains ( application_name ) "Firefox" ) ) | + | |
- | ( begin (geometry "1200x1150+0+0") ( println "match" ) ) | + | |
- | ) | + | |
- | </code> | + | |
==== Syntaxe des règles ==== | ==== Syntaxe des règles ==== | ||
Ligne 150: | Ligne 197: | ||
* une simple action (elle s'applique alors à toutes les fenêtres) : **//(debug)//** ou | * une simple action (elle s'applique alors à toutes les fenêtres) : **//(debug)//** ou | ||
- | * une condition : **//(if (condition) (action))//** : si la condition est vraie alors l'action est réalisée par devilspie. | + | * une condition : **//(if(condition) (action))//** : si la condition est vraie alors l'action est réalisée par devilspie. |
- | //(if (is (application_name) "gThumb") (maximize))// | + | //(if(is (application_name) "gThumb") (maximize))// |
(si l'application qui ouvre la fenêtre est gThumb alors devilspie va maximiser la fenêtre). | (si l'application qui ouvre la fenêtre est gThumb alors devilspie va maximiser la fenêtre). | ||
Ligne 171: | Ligne 218: | ||
De la même façon, on peut faire appliquer plusieurs actions en faisant débuter la liste par **begin** : | De la même façon, on peut faire appliquer plusieurs actions en faisant débuter la liste par **begin** : | ||
- | //(if (is (application_name) "gThumb") (begin (maximize) (set_workspace 4)))// | + | //(if(is (application_name) "gThumb") (begin (maximize) (set_workspace 4)))// |
Quand une action comporte un argument l'ensemble doit être entre parenthèses. | Quand une action comporte un argument l'ensemble doit être entre parenthèses. | ||
Ligne 190: | Ligne 237: | ||
(if | (if | ||
(and (contains (application_name) "gajim.py") (or(contains(window_name) "salon 1") (contains(window_name) "salon 2"))) | (and (contains (application_name) "gajim.py") (or(contains(window_name) "salon 1") (contains(window_name) "salon 2"))) | ||
- | (begin | + | (begin |
(set_workspace 1) | (set_workspace 1) | ||
(below) | (below) | ||
Ligne 203: | Ligne 250: | ||
===== Astuces ===== | ===== Astuces ===== | ||
- | |||
- | Il est possible d'avoir plusieurs règles dans un seul fichier. Il faut pour cela englober les règles dans un "begin" général. | ||
- | <file> | ||
- | (begin | ||
- | (if (contains (application_name) "toto") | ||
- | (begin (set_workspace 1) | ||
- | (geometry "+0+0"))) | ||
- | | ||
- | (if (contains (application_name) "titi") | ||
- | ...) | ||
- | | ||
- | .... | ||
- | ) | ||
- | </file> | ||
Si vous désirez avoir une application sur tous les bureaux en utilisant Compiz, utilisez les éléments suivants : | Si vous désirez avoir une application sur tous les bureaux en utilisant Compiz, utilisez les éléments suivants : | ||
Ligne 241: | Ligne 274: | ||
pour un bureau de 800x600 compiz le considère comme un bureau de 3200x600, donc si je veux ouvrir mon application sur le second bureau (geometry "800x600+800+0").</note> | pour un bureau de 800x600 compiz le considère comme un bureau de 3200x600, donc si je veux ouvrir mon application sur le second bureau (geometry "800x600+800+0").</note> | ||
- | ===== Problèmes connus ===== | ||
- | Si l'application ne se lance pas, Appuyez sur ALT+F2, ouvrez avec les droits d'administrateur le fichier: /usr/bin/gdevilspie. Cherchez a ligne contenant "self.UpdateAutostartStatus()" et commentez la en tapant un dièse en début de ligne (ce qui donne "# self.UpdateAutostartStatus()" sans les guillemets). Enregistrer le fichier et relancer gdevilpsie. (Merci à [[http://community.linuxmint.com/user/view/73879|hrvooje]] de la communauté de Linux Mint) | ||
- | |||
- | Un changement de paramétrage n'est pris en compte qu'après un redémarrage de devilspie. Le plus simple est de redémarrer la session. | ||
===== Liens ===== | ===== Liens ===== | ||
- | + | * [[http://live.gnome.org/DevilsPie|une présentation détaillée de Devilspie]] | |
- | * http://ubuntuforums.org/showthread.php?t=75749 | + | * [[http://www.nongnu.org/devilspie2/|Le site officiel de Devilspie2]] (devilspie 2 est dans les dépôts, mais n'est __pas__ la version décrite dans cette page d'aide). |
- | * Forum Debian : [[http://www.debian-fr.org/devil-s-pie-ou-l-art-de-manipuler-ses-fenetres-t1662.html|Devil's Pie ou l'art de manipuler ses fenêtres]] | + | |
- | * Versions antérieures à la 0.13. : http://wiki.foosel.net/linux/devilspie ou http://live.gnome.org/DevilsPie | + | |
---- | ---- | ||
//Contributeur : [[utilisateurs:epictete]], [[utilisateurs:mcpeter|McPeter]], [[utilisateurs:ljere|ljere]], [[utilisateurs:Fenouille84]]// | //Contributeur : [[utilisateurs:epictete]], [[utilisateurs:mcpeter|McPeter]], [[utilisateurs:ljere|ljere]], [[utilisateurs:Fenouille84]]// |