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 17/07/2019, 14:39] 109.7.55.182 [Devil's Pie] faute de maintenance |
devilspie [Le 24/01/2024, 14:10] (Version actuelle) 141.227.26.230 [Devil's Pie] |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
====== Devil's Pie ===== | ====== Devil's Pie ===== | ||
- | 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, | + | 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 ...).\\ | + | 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 n'importe quel [[:gestionnaire 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]]) :!:. |
- | + | ||
- | <note>Il existe une version avec interface graphique pour créer les règles de devilspie : [[http://code.google.com/p/gdevilspie/|gdevilspie]]. Ce logiciel était dans les dépôts jusqu'à la version 16.04 de Ubuntu, mais en a disparu depuis, faute de maintenance.</note> | + | |
<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> | <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> | ||
Ligne 17: | Ligne 15: | ||
[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>devilspie]]**. | [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>devilspie]]**. | ||
- | Pour que Devilspie soit actif à chaque démarrage, il faudra ajouter | + | Pour que Devilspie soit actif à chaque démarrage, il faudra ajouter |
- | <code>devilspie</code> aux applications [[:tutoriel:application_demarrage|démarrées automatiquement]] à votre session. | + | <code>devilspie</code> dans la liste des applications [[:tutoriel:application_demarrage|démarrées automatiquement]] par votre session. |
===== 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 positionner sa fenêtre (mode "minimisé", centré, en haut à gauche, ...). 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 : | ||
- | * Créer un [[:fichier_cache|répertoire caché]] **/.devilspie** dans votre //Dossier Personnel//. \\ :!: 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 [[: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]]. :!: |
- | * Dans ce 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**. | + | * 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**. |
* À l'intérieur du fichier, **on colle les commandes** pour engendrer le comportement souhaité. Voir les exemple ci-dessous. | * À l'intérieur du fichier, **on colle les commandes** pour engendrer le comportement souhaité. Voir les exemple ci-dessous. | ||
Ligne 32: | Ligne 30: | ||
<file> | <file> | ||
- | (if | + | (if |
(is (application_name) "Thunderbird") | (is (application_name) "Thunderbird") | ||
(set_workspace 3) | (set_workspace 3) | ||
Ligne 41: | Ligne 39: | ||
<file> | <file> | ||
- | (if | + | (if |
(is (application_name) "Thunderbird") | (is (application_name) "Thunderbird") | ||
(minimize) | (minimize) | ||
Ligne 51: | Ligne 49: | ||
<file> | <file> | ||
- | (if | + | (if |
(is (application_name) "Thunderbird") | (is (application_name) "Thunderbird") | ||
(geometry "+1+0") | (geometry "+1+0") | ||
Ligne 58: | Ligne 56: | ||
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. | 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")** | + | 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**__ | __**Démarrer Thunderbird avec la fenêtre positionnée en haut à gauche __ET__ avec une dimension imposée**__ | ||
<file> | <file> | ||
- | (if | + | (if |
(is (application_name) "Thunderbird") | (is (application_name) "Thunderbird") | ||
(geometry "1200x1150+1+0") | (geometry "1200x1150+1+0") | ||
Ligne 73: | Ligne 71: | ||
<file> | <file> | ||
- | (if | + | (if |
(is (application_name) "Thunderbird") | (is (application_name) "Thunderbird") | ||
(begin (set_workspace 3) (minimize) ) | (begin (set_workspace 3) (minimize) ) | ||
Ligne 93: | Ligne 91: | ||
(begin | (begin | ||
- | (if | + | (if |
(is (application_name) "Thunderbird") | (is (application_name) "Thunderbird") | ||
(set_workspace 3) | (set_workspace 3) | ||
) | ) | ||
- | (if | + | (if |
(is (application_name) "gmusicbrowser") | (is (application_name) "gmusicbrowser") | ||
- | (set_workspace 4) | + | (begin (minimize) (set_workspace 2) ) |
) | ) | ||
- | (if | + | (if |
(is (application_name) "Firefox") | (is (application_name) "Firefox") | ||
(geometry "1200x1150+1+0") | (geometry "1200x1150+1+0") | ||
Ligne 110: | Ligne 108: | ||
) | ) | ||
</file> | </file> | ||
- | Ici, Thunderbird et gmusicbrowser sont envoyés sur 2 bureaux différents, Firefox est affiché en haut à gauche avec une fenêtre de taille 1200x1150. Comme le montre 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. | + | 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. | 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 : | + | |
+ | __**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 : | + | __**3 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 casse : **F**irefox marche, mais pas firefox (sans majuscule). Certains logiciels demandent une majuscule (**F**irefox), et d'autres non (**g**musicbrowser). | * 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). | ||
Ligne 133: | Ligne 138: | ||
<file> | <file> | ||
; ceci est un commentaire | ; ceci est un commentaire | ||
- | ( if | + | ( if |
( is ( application_name ) "Thunderbird" ) | ( is ( application_name ) "Thunderbird" ) | ||
( set_workspace 3 ) | ( set_workspace 3 ) | ||
Ligne 179: | Ligne 184: | ||
<file> | <file> | ||
; Duplique la fenêtre Gedit sur chaque bureau | ; Duplique la fenêtre Gedit sur chaque bureau | ||
- | ( if | + | ( if |
( is ( application_name ) "Gedit" ) | ( is ( application_name ) "Gedit" ) | ||
( pin ) | ( pin ) | ||
- | ) | ||
- | </file> | ||
- | |||
- | Placer systématiquement [[firefox|Firefox]] en haut à gauche ("+0+0"), avec une largeur de 1300 px et une hauteur de 1150 px ("1200x1150") : | ||
- | <file> | ||
- | ; Positionne les fenêtres Firefox en haut à gauche et avec une certaine taille | ||
- | ( if | ||
- | ( is ( application_name ) "Firefox" ) | ||
- | (geometry "1200x1150+0+0") | ||
) | ) | ||
</file> | </file> | ||
Ligne 200: | Ligne 196: | ||
* 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 221: | Ligne 217: | ||
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 253: | Ligne 249: | ||
===== 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 291: | Ligne 273: | ||
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 graphique ne se lance pas, [[:tutoriel:comment_modifier_un_fichier|ouvrez]] avec les [[:sudo|droits d'administrateur]] le fichier **/usr/bin/gdevilspie**.\\ | ||
- | Commentez ((ajouter un # au début de ligne)) la ligne suivante: | ||
- | <file># self.UpdateAutostartStatus()</file> | ||
- | 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 ===== |