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
Prochaine révision Les deux révisions suivantes
devilspie [Le 14/08/2018, 08:10]
78.222.221.86 [Installation]
devilspie [Le 28/10/2018, 00:25]
88.182.40.86 [Liens]
Ligne 1: Ligne 1:
-{{tag>​Xenial personnalisation}} 
  
----- 
-====== 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,  
-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 marche normalement avec n'​importe quel [[:​gestionnaire de fenêtres]] (xfwm, metacity, compiz ...). 
-<​note>​Il existe une version avec interface graphique pour créer les règles de devilspie : [[http://​code.google.com/​p/​gdevilspie/​|gdevilspie]] 
  
-À noter également qu'un fork de Devilspie, nommé [[http://​www.gusnan.se/​devilspie2/​|Devilspie2]] ​ existe et qu'il se configure différemment,​ via des scripts Lua simples.</​note>​ 
  
-<note Important>​Cette page décrit les règles de paramétrage à **partir de la version 0.13**. Auparavant le paramétrage était totalement différent. 
  
-Devilspie n'est PAS compatible avec [[wayland|Wayland]] (session par défaut de Ubuntu 17.10, mais pas de la 18.04). Il a besoin d'une session [[xorg|X.org]]</​note>​ 
  
-===== Installation ===== 
  
-[[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] **[[apt>​devilspie]]** ou si vous voulez la version avec interface graphique **[[apt>​gdevilspie]]**. 
  
-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. 
  
-===== 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 : 
  
-  * 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]]. :!: 
-  * 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**. 
-  * À 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 : 
  
-__**Démarrer Thunderbird sur le bureau 3.**__ 
  
-<​file>​ 
-(if  
-  (is (application_name) "​Thunderbird"​) 
-  (set_workspace 3) 
-) 
-</​file>​ 
- 
-__**Démarrer Thunderbird en mode minimisé**__ 
- 
-<​file>​ 
-(if  
-  (is (application_name) "​Thunderbird"​) 
-  (minimize) 
-) 
-</​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"​)** 
- 
-__**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é**__ 
- 
-<​file>​ 
-(if  
-  (is (application_name) "​Thunderbird"​) ​ 
-  (begin (set_workspace 3) (minimize) ) 
-) 
-</​file>​ 
- 
-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). 
- 
-__**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"​) 
-   ​(set_workspace 4) 
-  ) 
- 
-  (if  
-    (is (application_name) "​Firefox"​) 
-    (geometry "​1200x1150+1+0"​) 
-  ) 
- 
-) 
-</​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. 
- 
-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**. 
-  * __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). 
- 
-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]). 
- 
-Pour d'​autres fonctionnalités,​ voir les chapitres suivants. 
- 
-===== Configuration avancée ===== 
- 
-==== 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 ==== 
- 
-<​file>​ 
-(debug) ​             # Renvoie les informations sur les fenêtres ouvertes 
- 
-(maximize) (maximize_horizontally) (maximize_vertically) 
- 
-(minimize) 
- 
-(fullscreen) ​        # Plein-écran 
- 
-(center) ​            # Centre la fenêtre sur l'​écran 
- 
-(geometry largeur[x]hauteur[+]abcisse[+]ordonnée) 
- 
-  * (geometry "​400x200+0+0"​) # Placera la fenêtre en 400 de large par 200 de haut en haut à gauche 
- 
-  * (geometry "​400x200"​) 
- 
-  * (geometry "​+10+10"​) 
- 
-(set_workspace 2)    # Déplace la fenêtre vers le bureau n° 2 
-(set_viewport 2)     # Déplace la fenêtre vers le bureau n° 2 (Compiz) 
- 
-(change_workspace 2) # Affiche le bureau n°2 
- 
-(pin)                # Rend la fenêtre présente sur tous les bureaux 
-(stick) ​             # Rend la fenêtre présente sur tous les bureaux (Compiz) 
- 
-(opacity 80)         # Donne une opacité à 80% 
- 
-(above) ​             # Met la fenêtre en avant-plan 
- 
-(focus) ​             # Met le focus sur la fenêtre 
- 
-(undecorate) ​        # Supprime les décorations du gestionnaire de fenêtres (Barre de titre et bordures) 
-</​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>​ 
- 
-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>​ 
-==== 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 ==== 
- 
-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 : 
-''​(debug)''​ 
- 
-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''​ 
- 
-La partie à retenir est : "​Application Name: '​Firefox'"​. 
- 
-pour finir voici un exemple avec gajim qui associe and et or : 
- 
-<​file>​ 
-(if 
-  (and (contains (application_name) "​gajim.py"​) (or(contains(window_name) "salon 1") (contains(window_name) "salon 2"))) 
-   ​(begin 
-    (set_workspace 1) 
-    (below) 
-    (undecorate) 
-    (skip_pager) 
-    (skip_tasklist) 
-    (wintype "​utility"​) 
-    (geometry "​900x450+375+55"​) 
-  ) 
-) 
-</​file>​ 
- 
-===== 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 : 
-<​file>​ 
-(stick) 
-(wintype "​dock"​) 
-</​file>​ 
-Pour Metacity : 
-<​file>​ 
-(pin) 
-(wintype "​desktop"​) 
-</​file>​ 
- 
-Si vous voulez lancer une application sur un bureau précis en utilisant Compiz (__**X** est le numéro du bureau visé__) : 
-<​file>​ 
-(set_viewport X) 
-</​file>​ 
-Pour Metacity : 
-<​file>​ 
-(set_workspace X) 
-</​file>​ 
- 
-<note tip>si set_viewport ne fonctionne pas il y a une autre solution, il suffit de savoir que compiz n'est en fait qu'un seul bureau exemple : 
-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 =====
  • devilspie.txt
  • Dernière modification: Le 24/01/2024, 14:10
  • par 141.227.26.230