Ceci est une ancienne révision du document !
Configuration avancée
Commentaires
Une ligne de commentaire peut-être introduite dans le fichier. Elle commence par un ;
Par exemple :
; ceci est un commentaire ( if ( is ( application_name ) "Thunderbird" ) ( set_workspace 3 ) )
Les actions possibles
(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)
Par exemple faire apparaître Gedit sur TOUS les bureaux (option pin - le contenu de chaque fenêtre sera identique aux autres) :
; Duplique la fenêtre Gedit sur chaque bureau ( if ( is ( application_name ) "Gedit" ) ( pin ) )
Placer systématiquement Firefox en haut à gauche ("+0+0"), avec une largeur de 1300 px et une hauteur de 1150 px ("1200x1150") :
; Positionne les fenêtres Firefox en haut à gauche et avec une certaine taille ( if ( is ( application_name ) "Firefox" ) (geometry "1200x1150+0+0") )
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 :
(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") ) )
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.
(begin (if (contains (application_name) "toto") (begin (set_workspace 1) (geometry "+0+0"))) (if (contains (application_name) "titi") ...) .... )
Si vous désirez avoir une application sur tous les bureaux en utilisant Compiz, utilisez les éléments suivants :
(stick) (wintype "dock")
Pour Metacity :
(pin) (wintype "desktop")
Si vous voulez lancer une application sur un bureau précis en utilisant Compiz (X est le numéro du bureau visé) :
(set_viewport X)
Pour Metacity :
(set_workspace X)
Problèmes connus
Si l'application graphique ne se lance pas, ouvrez avec les droits d'administrateur le fichier /usr/bin/gdevilspie.
Commentez 1) la ligne suivante:
# self.UpdateAutostartStatus()
Enregistrer le fichier et relancer gdevilpsie. (Merci à 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.