Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| devilspie [Le 29/09/2018, 16:13] – note obsolète L'Africain | devilspie [Le 22/11/2020, 10:31] (Version actuelle) – [Configuration manuelle simple] mode texte christophe c | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | {{tag> | ||
| + | ---- | ||
| + | ====== Devil' | ||
| + | |||
| + | Devil' | ||
| + | qui permet de détecter les caractéristiques des fenêtres et de leur appliquer des règles de comportement. Il permet donc d' | ||
| + | Une fois paramétré pour un logiciel donné, Devil' | ||
| + | |||
| + | Devil' | ||
| + | |||
| + | < | ||
| + | |||
| + | <note Important> | ||
| + | ===== Installation ===== | ||
| + | |||
| + | [[: | ||
| + | |||
| + | Pour que Devilspie soit actif à chaque démarrage, il faudra ajouter | ||
| + | < | ||
| + | |||
| + | ===== Configuration manuelle simple | ||
| + | L' | ||
| + | |||
| + | * Créer un [[: | ||
| + | * Dans ce répertoire caché, créer avec un éditeur de texte quelconque ([[gedit|gedit]], | ||
| + | * À l' | ||
| + | |||
| + | Gardons l' | ||
| + | |||
| + | __**Démarrer Thunderbird sur le bureau 3.**__ | ||
| + | |||
| + | < | ||
| + | (if | ||
| + | (is (application_name) " | ||
| + | (set_workspace 3) | ||
| + | ) | ||
| + | </ | ||
| + | |||
| + | __**Démarrer Thunderbird en mode minimisé**__ | ||
| + | |||
| + | < | ||
| + | (if | ||
| + | (is (application_name) " | ||
| + | (minimize) | ||
| + | ) | ||
| + | </ | ||
| + | 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**__ | ||
| + | |||
| + | < | ||
| + | (if | ||
| + | (is (application_name) " | ||
| + | (geometry " | ||
| + | ) | ||
| + | </ | ||
| + | Dans cet exemple, | ||
| + | |||
| + | Pour démarrer en haut et à **droite** de l' | ||
| + | |||
| + | __**Démarrer Thunderbird avec la fenêtre positionnée en haut à gauche __ET__ avec une dimension imposée**__ | ||
| + | |||
| + | < | ||
| + | (if | ||
| + | (is (application_name) " | ||
| + | (geometry " | ||
| + | ) | ||
| + | </ | ||
| + | Dans cet exemple, | ||
| + | |||
| + | __**Démarrer Thunderbird sur le bureau 3 __ET__ en mode minimisé**__ | ||
| + | |||
| + | < | ||
| + | (if | ||
| + | (is (application_name) " | ||
| + | (begin (set_workspace 3) (minimize) ) | ||
| + | ) | ||
| + | </ | ||
| + | |||
| + | 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**__ | ||
| + | |||
| + | < | ||
| + | (debug | ||
| + | (center) | ||
| + | ) | ||
| + | </ | ||
| + | |||
| + | __**ASTUCE**__ : on peut avoir __un seul__ fichier de configuration pour tous ses logiciels, à condition de l' | ||
| + | < | ||
| + | (begin | ||
| + | |||
| + | (if | ||
| + | (is (application_name) " | ||
| + | (set_workspace 3) | ||
| + | ) | ||
| + | |||
| + | (if | ||
| + | (is (application_name) " | ||
| + | (begin (minimize) (set_workspace 2) ) | ||
| + | ) | ||
| + | |||
| + | (if | ||
| + | (is (application_name) " | ||
| + | (geometry " | ||
| + | ) | ||
| + | |||
| + | ) | ||
| + | </ | ||
| + | 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' | ||
| + | |||
| + | 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 en mode graphique__ : | ||
| + | - dans XFCE : " | ||
| + | - dans Ubuntu gnome : " | ||
| + | * Puis dans la zone " | ||
| + | * __Démarrage automatique via le terminal__ : | ||
| + | < | ||
| + | Paramétrer votre démarrage automatique en mode graphique ou en mode texte est équivalent, | ||
| + | |||
| + | __**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), | ||
| + | * 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' | ||
| + | |||
| + | ===== 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 ) " | ||
| + | ( set_workspace 3 ) | ||
| + | ) | ||
| + | </ | ||
| + | ==== Les actions possibles ==== | ||
| + | |||
| + | < | ||
| + | (debug) | ||
| + | |||
| + | (maximize) (maximize_horizontally) (maximize_vertically) | ||
| + | |||
| + | (minimize) | ||
| + | |||
| + | (fullscreen) | ||
| + | |||
| + | (center) | ||
| + | |||
| + | (geometry largeur[x]hauteur[+]abcisse[+]ordonnée) | ||
| + | |||
| + | * (geometry " | ||
| + | |||
| + | * (geometry " | ||
| + | |||
| + | * (geometry " | ||
| + | |||
| + | (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) | ||
| + | |||
| + | (opacity 80) # Donne une opacité à 80% | ||
| + | |||
| + | (above) | ||
| + | |||
| + | (focus) | ||
| + | |||
| + | (undecorate) | ||
| + | </ | ||
| + | |||
| + | Par exemple faire apparaître [[gedit|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 ) " | ||
| + | ( pin ) | ||
| + | ) | ||
| + | </ | ||
| + | ==== Syntaxe des règles ==== | ||
| + | |||
| + | La règle et ses éléments doivent être entre parenthèses : **// | ||
| + | |||
| + | La règle peut être : | ||
| + | |||
| + | * une simple action (elle s' | ||
| + | * une condition : **//(if (condition) (action))// | ||
| + | |||
| + | //(if (is (application_name) " | ||
| + | (si l' | ||
| + | |||
| + | 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' | ||
| + | * **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) " | ||
| + | |||
| + | De la même façon, on peut faire appliquer plusieurs actions en faisant débuter la liste par **begin** : | ||
| + | |||
| + | //(if (is (application_name) " | ||
| + | |||
| + | Quand une action comporte un argument l' | ||
| + | |||
| + | ==== 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 ~/ | ||
| + | '' | ||
| + | |||
| + | Ensuite, lancez " | ||
| + | '' | ||
| + | |||
| + | La partie à retenir est : " | ||
| + | |||
| + | pour finir voici un exemple avec gajim qui associe and et or : | ||
| + | |||
| + | < | ||
| + | (if | ||
| + | (and (contains (application_name) " | ||
| + | | ||
| + | (set_workspace 1) | ||
| + | (below) | ||
| + | (undecorate) | ||
| + | (skip_pager) | ||
| + | (skip_tasklist) | ||
| + | (wintype " | ||
| + | (geometry " | ||
| + | ) | ||
| + | ) | ||
| + | </ | ||
| + | |||
| + | ===== Astuces ===== | ||
| + | |||
| + | Si vous désirez avoir une application sur tous les bureaux en utilisant Compiz, utilisez les éléments suivants : | ||
| + | < | ||
| + | (stick) | ||
| + | (wintype " | ||
| + | </ | ||
| + | Pour Metacity : | ||
| + | < | ||
| + | (pin) | ||
| + | (wintype " | ||
| + | </ | ||
| + | |||
| + | 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) | ||
| + | </ | ||
| + | |||
| + | <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 " | ||
| + | |||
| + | ===== Problèmes connus ===== | ||
| + | |||
| + | Si l' | ||
| + | Commentez ((ajouter un # au début de ligne)) la ligne suivante: | ||
| + | < | ||
| + | Enregistrer le fichier et relancer gdevilpsie. (Merci à [[http:// | ||
| + | |||
| + | Un changement de paramétrage n'est pris en compte qu' | ||
| + | |||
| + | ===== Liens ===== | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | // | ||
