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 22/11/2020, 10:10] christophe c [Configuration manuelle simple] typo |
devilspie [Le 19/01/2025, 19:10] (Version actuelle) 86.202.189.154 [Installation] |
||
---|---|---|---|
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 ...) X11, mais PAS avec [[wayland|Wayland]]. Devilspie ne fonctionne donc pas sous [[gnome-shell|Gnome-Shell]] pour Wayland. | + | 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 17.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 juste ajouter |
<code>devilspie</code> dans la liste des applications [[:tutoriel:application_demarrage|démarrées automatiquement]] par votre session. | <code>devilspie</code> dans la liste des applications [[:tutoriel:application_demarrage|démarrées automatiquement]] par votre session. | ||
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 63: | Ligne 61: | ||
<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") | ||
(begin (minimize) (set_workspace 2) ) | (begin (minimize) (set_workspace 2) ) | ||
) | ) | ||
- | (if | + | (if |
(is (application_name) "Firefox") | (is (application_name) "Firefox") | ||
(geometry "1200x1150+1+0") | (geometry "1200x1150+1+0") | ||
Ligne 117: | Ligne 115: | ||
__**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__ (méthode conseillée) : | + | * __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 XFCE : "gestionnaire de paramètre > session et démarrage > démarrage automatique d'application > ajouter" ; | ||
- dans Ubuntu gnome : "Applications > Applications au démarrage > 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). | * 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. | ||
- | + | __**4 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). | ||
* 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, voir les chapitres suivants. | Pour d'autres fonctionnalités, voir les chapitres suivants. | ||
Ligne 138: | Ligne 139: | ||
<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 184: | Ligne 185: | ||
<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 ) | ||
Ligne 196: | 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 208: | Ligne 209: | ||
L'objet de la condition peut être : | L'objet de la condition peut être : | ||
* **application_name** | * **application_name** | ||
- | * **window_name** ou | + | * **window_name** (correspond au contenu de la zone "Window Title" quand on fait un **devilspie -d**), ou |
* **window_role** | * **window_role** | ||
Ligne 217: | 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 223: | Ligne 224: | ||
==== Obtenir le nom d'une application ==== | ==== Obtenir le nom d'une application ==== | ||
- | Pour obtenir le nom exacte d'une application (à utiliser avec application_name) il vous suffit de créer un fichier ~/.devilspie/debug.ds et d'y ajouter : | + | Pour obtenir le nom exacte d'une application, ou le nom de sa fenêtre (pas forcément le même) il vous suffit de créer un fichier ~/.devilspie/debug.ds et d'y mettre une ligne unique : |
''(debug)'' | ''(debug)'' | ||
- | Ensuite, lancez "devilspie -d" dans une console et observez les lignes apparaissant à l'écran lorsque vous lancez une application. Exemple pour Firefox : | + | Ensuite, lancez **devilspie -d** dans une console et observez les lignes apparaissant à l'écran lorsque vous lancez une application. Exemple pour Firefox : |
''Window Title: 'Mozilla Firefox Beta 1'; Application Name: 'Firefox'; Class: 'Firefox-bin'; Geometry: 1014x692+5+46'' | ''Window Title: 'Mozilla Firefox Beta 1'; Application Name: 'Firefox'; Class: 'Firefox-bin'; Geometry: 1014x692+5+46'' | ||
- | La partie à retenir est : "Application Name: 'Firefox'". | + | Avec l'option **application_name**, la partie à retenir est : "Application Name: 'Firefox'".\\ |
+ | Avec l'option **window_name**, la partie à retenir est : "Window Title: 'Mozilla Firefox Beta 1'". | ||
- | pour finir voici un exemple avec gajim qui associe and et or : | + | Pour finir, voici un exemple avec gajim qui associe **and** et **or** : |
<file> | <file> | ||
Ligne 273: | Ligne 275: | ||
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 ===== |