Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
devilspie [Le 29/10/2016, 10:09]
62.39.254.65 [Configuration manuelle simple]
devilspie [Le 24/01/2024, 14:10] (Version actuelle)
141.227.26.230 [Devil's Pie]
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 ...). 
 +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 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'​envoyer une fenêtre qu'on ouvre dans un bureau spécifique et / ou de lui définir une option d'​affichage (taille de la fenêtre, transparence,​ focus, ...). +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 marche normalement avec tous les gestionnaires ​de fenêtres (xfwm, metacity, compiz ...).  +
- +
-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]]**.
  
-Alternativementune installation en ligne de commande est possible en rentrant dans un terminal la commande suivante : +Pour que Devilspie soit actif à chaque démarrageil 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.
-  * 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 43: 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 :+__**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 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]).
  
-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 le répertoire pour les fichiers ​de règle n'est pas **~/​.devilspie** mais  ​**/​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 126: Ligne 181:
 </​file>​ </​file>​
  
 +Par exemple faire apparaître [[gedit|Gedit]] sur TOUS les bureaux (option **pin** - le contenu de chaque fenêtre sera identique aux autres) :
 +<​file>​
 +; Duplique la fenêtre Gedit sur chaque bureau
 +( if
 +  ( is ( application_name ) "​Gedit"​ )
 +  ( pin )
 +)
 +</​file>​
 ==== Syntaxe des règles ==== ==== Syntaxe des règles ====
  
Ligne 133: 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 154: 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 173: Ligne 236:
 (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 186: 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 224: 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 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]]//​
  • devilspie.1477728560.txt.gz
  • Dernière modification: Le 29/10/2016, 10:09
  • par 62.39.254.65