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 17/04/2015, 18:27]
176.186.233.180 [Lancement du logiciel]
devilspie [Le 24/01/2024, 14:10] (Version actuelle)
141.227.26.230 [Devil's Pie]
Ligne 1: Ligne 1:
-{{tag>Precise ​personnalisation}}+{{tag>Xenial ​personnalisation}}
  
 ---- ----
 +====== Devil'​s Pie =====
  
-====== ​Devil'​s Pie : ouvrir une fenêtre ​dans le bureau ​======+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 permet d'ouvrir une fenêtre dans le bureau et le format choisi. +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]]) :!:.
-===== Introduction ===== +
- +
-Devil'​s Pie est un logiciel qui, dans le gestionnaire de fenêtres ​Metacity ​(gestionnaire utilisé par Gnome) permet de détecter les caractéristiques des fenêtres et de leur appliquer des règles de comportement +
- +
-<note warning>​Devil'​s Pie n'est pas exclusif à MetacityIl fonctionne avec tous les gestionnaires de fenêtresJe l'​utilise avec OpenBox. Avis aux amateurs ;-)</​note>​ +
- +
-Il s'agit d'un logiciel libre de **Ross Burton** (http://www.burtonini.com , <​ross@burtonini.com>​) publié ​sous la license GNU GPL.  +
- +
-**Ceci est un résumé de 2 how-tos absolument remarquables ​(en anglais) : ** +
- +
-http://​ubuntuforums.org/​showthread.php?​t=75749 +
- +
-Ce how-to de Wolki extrêmement complet et détaillé fournit aussi la technique de paramétrage basée sur des fichiers xml des versions antérieures à la 0.13. :  +
- +
-http://wiki.foosel.net/​linux/​devilspie ou http://live.gnome.org/DevilsPie +
- +
-Il existe également cette page en français du 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]] +
- +
-Les fichiers de la doc (/​usr/​share/​doc/​devilspiesont malheureusement trop succincts pour être d'une quelconque utilité.  +
- +
-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/​]]) +
- +
-===== Pré-requis ===== +
- +
-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 du gestionnaire de paquet Synaptic, après avoir [[synaptic#​ce_que_synaptic_est_capable_de_faire|activé ​le dépôt "​Universe" ​]].+[[:​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>​+
  
-Pour installer l'interface graphique dont il est fait mention ​plus haut, il faut télécharger le fichier tar.bz2 disponible +===== Configuration manuelle simple ​ ===== 
-sur cette page: [[http://​code.google.com/​p/​gdevilspie/​downloads/​list]].+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 :
  
-Une fois le fichier sur votre ordinateur, il suffit ​[[archivage#​archiver_et_extraire_une_archive|d'​en ​extraire le contenu ​]] +  * 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]]. :!: 
-et d' ​exécuter ​le fichier ​"​gdevilspie"​ qui se trouve dans le dossier "​gdevilspie-0.5".+  * 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.
  
-Il est possible d'​installer ​l'interface grâce à un script d'​installation. Dans un terminal, lancez les commandes suivantes ​:+Gardons ​l'exemple de Thunderbird pour la suite :
  
-<​code>​+__**Démarrer Thunderbird sur le bureau 3.**__
  
-cd /répertoire_ou_se_trouve_gdevilspie-0.5 ​+<​file>​ 
 +(if 
 +  (is (application_name) "​Thunderbird"​) 
 +  (set_workspace 3) 
 +
 +</file>
  
-sudo python setup.py install+__**Démarrer Thunderbird en mode minimisé**__
  
-</code>+<​file>​ 
 +(if 
 +  (is (application_name) "​Thunderbird"​) 
 +  (minimize) 
 +
 +</file> 
 +On peut remplacer (minimize) par (center) si on veut centrer la fenêtre.
  
-Il vous est désormais possible de lancer l'​interface graphique ​en tapant, dans un terminal :+__**Démarrer Thunderbird avec la fenêtre positionnée ​en haut à gauche**__
  
-<code+<file
-gdevilspie +(if 
-</code>+  (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"​)**.
  
-===== Lancement du logiciel =====+__**Démarrer Thunderbird avec la fenêtre positionnée en haut à gauche __ET__ avec une dimension imposée**__
  
-On peut lancer le logiciel ponctuellement ​en tapant « **devilspie** » dans un terminal.+<​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).
  
-En revanche, pour qu'il soit lancé automatiquement à chaque session, aller dans : +__**Démarrer Thunderbird ​sur le bureau 3 __ET__ en mode minimisé**__
-Système / Préférences / Sessions / onglet Programmes au démarrage +
-Cliquer ​sur le bouton « Ajouter » et dans la ligne « Commande de démarrage », taper « devilspie ».+
  
-<note+<file
-Cette manipulation est inutile si vous utilisez l'​interface graphique ​"gdevilspie". Il suffit dans ce cas de cocher la case "Start devilspie daemon automatically at login"​. +(if 
-</note>+  (is (application_name) ​"Thunderbird")  
 +  (begin (set_workspace 3) (minimize) ) 
 +) 
 +</file>
  
-<note help>Si l'​application ne se lance pasAppuyez sur ALT+F2, ouvrez avec les droits d'​administrateur le fichier: /​usr/​bin/​gdevispie. Cherchez ​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)</​note>​ +Dans cet exempleil y __2 actions__ ​(bureau 3 ET minimiser)et elles doivent être __encadrées__ par un **(begin ...)**. (begin) est inutile pour une seule action (cfexemples 1et 2).
-===== Utilisation/​Configuration =====+
  
-Il faut d'​abord créer un dossier :+__**Démarrer TOUS les logiciels avec une fenêtre centrée**__
  
-- Soit **~/​.devilspie** c'​est-à-dire dans le dossier d'un utilisateur précis les autres n'​étant pas concernés ​(le point initial faisant que le dossier sera un dossier caché [dans nautilus, on peut faire apparaître les fichiers cachés par Ctrl+H ou par le menu Affichage / Afficher les fichiers cachés]).+<​file>​ 
 +(debug 
 +  (center) 
 +
 +</​file>​
  
-- Soit **/​etc/​devilspie**, ce qui s'​appliquera alors à tous les utilisateurs.+__**ASTUCE**__ : on peut avoir __un seul__ fichier de configuration pour tous ses logiciels, à condition de l'​encadrer par une fonction (begin)Exemple : 
 +<​file>​ 
 +(begin
  
-Dans ce dossier on enregistrera les règles qui s'​appliqueront aux fenêtres de Gnome sous forme de fichiers nommés ​(à votre choix arbitraire, exemple : gThumb.dsnom_de_la_regle.ds avec une seule règle par fichier ​(à l'​heure actuelle).+  ​(if 
 +    (is (application_name"​Thunderbird"​)  
 +    ​(set_workspace 3) 
 +  ​)
  
-==== La syntaxe des règles est la suivante ====+  (if 
 +   (is (application_name) "​gmusicbrowser"​) 
 +      (begin (minimize) (set_workspace 2) ) 
 +  )
  
-La règle et ses éléments doivent être entre parenthèses : **//(règle)//**+  ​(if 
 +    (is (application_name) "​Firefox"​) 
 +    (geometry "​1200x1150+1+0"​) 
 +  ​)
  
-La règle ​peut être :+
 +</​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).
  
-  * une simple action ​(elle s'​applique alors à toutes les fenêtres**//(debug)//** ou+En fonction de votre besoin, créez le nombre de fichier nécessaire ​(1 fichier par programme, ou un fichier globalet adaptez le **nom du programme** et le N° de bureau ​(**set_workspace**) qu'on trouve dans les exemples précédents.
  
-  * 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))// +__**Une fois un fichier de paramétrage créé, il faut démarrer devilspie pour que cela fonctionne :**__ 
-(si l'​application qui ouvre la fenêtre ​est gThumb alors devilspie va maximiser ​la fenêtre).+  * __ponctuellement__ : ouvrir une invite de commande via alt+F2, et y taper **devilspie**. 
 +  * __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.
  
-La condition peut être :+__**3 remarques importantes ​:**__ 
 +  * 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). 
 +  * 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]).
  
-  * **is** (identité) +Pour d'​autres fonctionnalités,​ voir les chapitres suivants.
-  * **contains** (contient) ou +
-  * **matches** (indique que le second terme de la condition est une expression régulière).+
  
-L'​objet de la condition peut être :+===== Configuration avancée =====
  
-  * **application_name** +==== Commentaires ==== 
-  * **window_name** ou +Une ligne de **commentaire** peut-être introduite dans le fichierElle commence ​par un **;**
-  * **window_role** +
- +
-Il peut être utile de combiner des conditions, par exemple traiter toutes les fenêtres de Firefox dont le titre contient ubuntu ; on peut à cet effet utiliser **and** et **or**. +
- +
-//(and (is (application_name) "​Firefox"​) (contains (window_name) "​Ubuntu"​))//​ +
- +
-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)))// +
- +
-Quand une action comporte un argument l'​ensemble doit être entre parenthèses.+
  
 +Par exemple :
 +<​file>​
 +; ceci est un commentaire
 +( if
 +  ( is ( application_name ) "​Thunderbird"​ )
 +  ( set_workspace 3 )
 +)
 +</​file>​
 ==== Les actions possibles ==== ==== Les actions possibles ====
  
Ligne 159: Ligne 180:
 (undecorate) ​        # Supprime les décorations du gestionnaire de fenêtres (Barre de titre et bordures) (undecorate) ​        # Supprime les décorations du gestionnaire de fenêtres (Barre de titre et bordures)
 </​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 ====
 +
 +La règle et ses éléments doivent être entre parenthèses : **//​(règle)//​**
 +
 +La règle peut être :
 +
 +  * 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.
 +
 +//(if(is (application_name) "​gThumb"​) (maximize))//​
 +(si l'​application qui ouvre la fenêtre est gThumb alors devilspie va maximiser la fenêtre).
 +
 +La condition peut être :
 +  * **is** (identité)
 +  * **contains** (contient) ou
 +  * **matches** (indique que le second terme de la condition est une expression régulière).
 +
 +L'​objet de la condition peut être :
 +  * **application_name**
 +  * **window_name** ou
 +  * **window_role**
 +
 +Il peut être utile de combiner des conditions, par exemple traiter toutes les fenêtres de Firefox dont le titre contient ubuntu ; on peut à cet effet utiliser **and** et **or**.
 +
 +//(and (is (application_name) "​Firefox"​) (contains (window_name) "​Ubuntu"​))//​
 +
 +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)))//
 +
 +Quand une action comporte un argument l'​ensemble doit être entre parenthèses.
  
 ==== Obtenir le nom d'une application ==== ==== Obtenir le nom d'une application ====
Ligne 175: 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 188: Ligne 249:
  
 ===== Astuces ===== ===== Astuces =====
- 
-Contrairement à ce qui écrit précédemment,​ il est bien 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 227: Ligne 274:
  
  
-<note tip>Pour Compiz, une autre solution, sans devilspie mais sur le même principe, est d'​utiliser le [[http://​doc.ubuntu-fr.org/​compizconfig-settings-manager|Gestionnaire de Configuration CompizConfig]]. 
-Il y a ensuite beaucoup de sections, avec parfois des recoupements,​ mais pour ce qu'on veut faire ici on peut utiliser (au moins) :  
-  * "​Placer des fenêtres",​ pour maximiser toutes les fenêtres (sur un netbook par exemple) ou placer une fenêtre sur un viewport particulier (avec des paramètres comme le titre, la classe, l'ID de la fenêtre, à l'​instar de devilspie), 
-  * "​Window Rules" pour créer des règles (maximisation,​ taille, focus) en fonction de ces mêmes paramètres. 
-</​note>​ 
    
- 
 ===== Liens ===== ===== Liens =====
 +  * [[http://​live.gnome.org/​DevilsPie|une présentation détaillée de Devilspie]]
 +  * [[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).
  
-Tutos et exemples de configurations de Devilspie (regorgeant d'​informations):​ http://​foosel.org/​linux/​devilspie 
-  
 ---- ----
- 
  
 //​Contributeur : [[utilisateurs:​epictete]],​ [[utilisateurs:​mcpeter|McPeter]],​ [[utilisateurs:​ljere|ljere]],​ [[utilisateurs:​Fenouille84]]//​ //​Contributeur : [[utilisateurs:​epictete]],​ [[utilisateurs:​mcpeter|McPeter]],​ [[utilisateurs:​ljere|ljere]],​ [[utilisateurs:​Fenouille84]]//​
  • devilspie.1429288064.txt.gz
  • Dernière modification: Le 17/04/2015, 18:27
  • (modification externe)