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édentesRévision précédente
Prochaine révision
Révision précédente
tutoriel:openbox_gestion_des_fenetres [Le 19/04/2011, 10:06] – [GDevilspie] Fenouille84tutoriel:openbox_gestion_des_fenetres [Le 15/12/2011, 15:17] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +{{tag>Lucid gestionnaire_de_fenêtres openbox personnalisation tutoriel}}
 +----
 +====== Comment gérer les fenêtres sous OpenBox ======
  
 +Bonjour à tous et à toutes :-)
 +
 +Vous désirez mettre un peu d'ordre dans vos fenêtres OpenBox ? Vous avez un soucis de placement de fenêtres ?? Alors cette page est faite pour vous !! ;-)
 +
 +<note>Cette page s'applique à la configuration suivante :
 +  * [[:lucid|Ubuntu 10.04 - Lucid Lynx]]
 +  * [[:OpenBox]] 3.4.10
 +
 +Je n'ai pas testé sur une version antérieure d'Ubuntu, encore moins sur une autre distribution Linux. Mais je pense que le principe doit rester le même.</note>
 +
 +===== Pré-requis =====
 +  * Être maniaque... ;-)
 +  * Être courageux pour lire et suivre cette page assez conséquente.
 +  * Avoir un __minimum__ de connaissance dans l'utilisation du terminal.
 +  * Ou sinon, savoir faire des copier-coller !! :-)
 +
 +===== Position des fenêtres =====
 +Tout d'abord, vous vous demandez comment placer les fenêtres sous OpenBox ??
 +Pour cela, 2 solutions :
 +  * Les placer à la main à chaque ouverture : c'est long et fastidieux !! :-\
 +  * Définir des règles de position : ce que nous allons faire ici.
 +
 +==== Définir des règles de position ====
 +=== Généralités ===
 +On va maintenant éditer le fichier de configuration rc.xml avec notre éditeur de texte préféré (gedit).
 +
 +Pour cela, tapez dans un terminal cette commande :
 +  gedit $HOME/.config/openbox/rc.xml
 +Pour ajouter une règle de position, la syntaxe est la suivante :
 +  <applications>
 +  
 +    <!-- Place notre_application -->
 +    <application name="notre_application">
 +       <position force="yes">
 +         <x>abscisses</x>
 +         <y>ordonnées</y>
 +       </position>
 +    </application>
 +    
 +  </applications>
 +<note>Bien entendu, il faut ensuite remplacer les arguments par les bonnes valeurs... ^_^ Prenons un exemple pour être plus clair.</note>
 +
 +=== Exemples ===
 +Prenons un exemple simple : placer firefox à 200 pixels du bord gauche et à 50 pixel du bord supérieur de l'écran.
 +  <applications>
 +  
 +    <!-- Place firefox -->
 +    <application name="firefox">
 +       <position force="yes">
 +         <x>200</x>
 +         <y>50</y>
 +       </position>
 +    </application>
 +    
 +  </applications>
 +Maintenant, ajoutons 2 règles différentes :
 +  * Firefox avec la même configuration que précédemment.
 +  * Tilda à 450 pixels du bord gauche et à 230 pixels du bord supérieur de l'écran.
 +
 +  <applications>
 +  
 +    <!-- Place firefox -->
 +    <application name="firefox">
 +       <position force="yes">
 +         <x>200</x>
 +         <y>50</y>
 +       </position>
 +    </application>
 +    
 +    <!-- Place Tilda -->
 +    <application name="tilda">
 +       <position force="yes">
 +         <x>450</x>
 +         <y>230</y>
 +       </position>
 +    </application>
 +    
 +  </applications>
 +Et voilà, le tour est joué ^_^
 +
 +<note warning>/!\ Notez bien que pour définir plusieurs règles, les balises : <application**s**> (__au pluriel__) ne sont **pas répétées** !!</note> 
 +<note tip>**..::: ASTUCE :::..**
 +
 +Pour définir la position de vos fenêtres à partir du bord droit, ou du bord inférieur, il vous suffit d'utiliser des valeurs négatives :
 +  <!-- Place firefox -->
 +  <application name="firefox">
 +    <position force="yes">
 +      <x>-200</x>
 +      <y>-50</y>
 +    </position>
 +  </application>
 +Ceci placera Firefox à 200 pixels du bord droit et à 50 pixels du bord inférieur.</note>
 +
 +==== Se faciliter la vie ====
 +Vous souhaitez que __toutes__ vos fenêtres se placent au même endroit ? Rien de plus simple !!
 +
 +Voici une petite astuce pour vous éviter de définir la même règle de position pour toutes vos fenêtres :
 +  <!-- Place TOUTES les fenêtres au même endroit -->
 +  <application name="*">
 +    <position force="yes">
 +      <x>50</x>
 +      <y>50</y>
 +    </position>
 +  </application>
 +Ici, __toutes__ vos fenêtres ouvertes seront placées :
 +  * à 50 pixels du bord gauche,
 +  * à 50 pixels du bord supérieur.
 + 
 +===== Cas particulier de tint2 =====
 +Si vous faites la manipulation précédente et que vous utilisez tint2, alors la règle de position affectera aussi tint2.
 +
 +Pas très pratique pour une barre de tâches... :-\ Mais pas de crainte, on peut remédier à ce léger soucis ;-)
 +
 +==== Devil's Pie ====
 +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. 
 +
 +Pour en savoir plus, je vous conseille la doc de [[:devilspie]].
 +
 +<note tip>Devil's Pie semble avoir été conçu pour Metacity. Toutefois, il fonctionne très bien sous OpenBox avec cette configuration :
 +  * Ubuntu 10.04 - Lucid Lynx
 +  * OpenBox 3.4.10
 +</note>
 +
 +=== Installation ===
 +Pour l'installer, 2 méthodes :
 +  * Installation en 1 clic : [[apt://devilspie]]
 +  * Via le terminal (programme présent dans les dépôts) :
 +
 +  sudo apt-get install devilspie
 +
 +=== Utilisation ===
 +Ensuite, pour son utilisation, je vous renvois à la documentation dédiée : [[:devilspie]].
 +
 +Son fichier et sa syntaxe de configuration sont assez complexes. Là encore, une solution simple existe : gdevilspie. Continuez au chapitre suivant ;-)
 +
 +==== GDevilspie ====
 +
 +GDevilspie est une interface graphique pour créer les règles de devilspie. Je vous le conseille donc __fortement__ !!
 +
 +=== Téléchargement ===
 +Voici le lien pour le télécharger :
 +[[http://code.google.com/p/gdevilspie/downloads/list]]
 +
 +=== Installation ===
 +Et la méthode à suivre pour l'installer :
 +  * Téléchargez, via le lien précédent, l'archive //gdevilspie-0.5.tar.bz2 //
 +  * Ouvrez un terminal et exécutez ces lignes une à une :
 +
 +  mkdir $HOME/.devilspie
 +  find -type f -iname "*gdevilspie-0.5.tar.bz2*" -exec mv {} $HOME/.devilspie \;
 +  cd $HOME/.devilspie
 +  tar xjvf gdevilspie-0.5.tar.bz2
 +  cd gdevilspie-0.5/
 +  sudo python setup.py install
 +Ces lignes de codes vont :
 +  * Créer un dossier caché nommé //.devilspie// dans votre /home
 +  * Trouver l'archive que vous avez téléchargée et la déplacer dans le dossier précédemment créé.
 +  * Vous déplacer dans ce même dossier.
 +  * Décompressez l'archive téléchargée.
 +  * Vous déplacer encore dans le bon dossier.
 +  * Lancer le script python pour installer gdevilspie.
 +Et voilà, normalement, gdevilspie vient d'être installé.
 +
 +Pour le vérifier, démarrez le via le terminal :
 +  gdevilspie &
 +<note important>Ne pas oublier le symbole **&** à la fin de la commande. Il permet de lancer l'application tout en "laissant libre" votre terminal. Ainsi, vous pouvez continuez à vous en servir, même si gdevilspie fonctionne.</note>
 +
 +<note warning>Attention, au lancement de gdevilspie, il est possible que vous ayez un message vous demandant d'installer python-wnck. Pour résoudre ça, **[[apt>python-wnck|l'installer en un clic]]** ou ouvrir un terminal, et l'installer :
 +
 +//sudo apt-get install python-wnck//</note>
 +
 +=== Configuration ===
 +GDevilspie est très simple d'utilisation.
 +
 +Néanmoins, pour vous éviter de chercher, voici la configuration à adopter pour (re)placer tint2 là où vous le voulez :
 +
 +  * Lancez gdevilspie via le terminal.
 +
 +  * Dans l'onglet //Matching//
 +    * Cochez **application_name**
 +    * Remplissez le champs //equals// : tint2
 +    * Renommer votre règle comme vous voulez (le champ tout au dessus)
 +
 +  * Dans l'onglet //Actions//
 +    * Cochez **pin**, pour afficher tint2 sur tous les bureaux (facultatif)
 +    * Cochez **geometry** et remplissez les champs :
 +      * Position en X
 +      * Position en Y
 +      * Hauteur de la fenêtre
 +      * Largeur de la fenêtre
 +<note>L'onglet //Raw// n'est pas super utile. Il ne fait que montrer comment est transcrite la règle dans le fichier de configuration de devilspie.</note>
 +    * Enregistrez, fermez le programme et relancer tint2 :
 +
 +  killall tint2 ; tint2 &
 +
 +Normalement, tint2 à repris sa position d'origine.
 +
 +===== Taille des fenêtres =====
 +Maintenant que vos fenêtres sont placées, vous voulez qu'elles aient une taille fixe ? Bienvenue dans ce (court) chapitre !
 +
 +==== GDevilspie ====
 +
 +//**[En cours de rédaction]**//
 +
 +Pour définir la taille de nos fenêtres, on va se servir encore une fois de gdevilspie.
 +
 +  * Lancez gdevilspie via le terminal.
 +
 +  * Dans l'onglet //Matching//
 +    * Cochez **application_name**
 +    * Remplissez le champs //equals// ou //contains// : nom_de votre_fenêtre
 +    * Renommer votre règle comme vous voulez (le champ tout au dessus)
 +
 +  * Dans l'onglet //Actions//
 +    * Cochez **geometry** et remplissez les champs :
 +      * Position en X
 +      * Position en Y
 +      * Hauteur de la fenêtre
 +      * Largeur de la fenêtre
 +
 +Cette méthode est bonne pour définir **une** règle, pour **une** fenêtre. Par exemple, avoir les fenêtres Firefox (et uniquement Firefox) de dimensions 800 par 450.
 +
 +Toutefois, si vous voulez que d'autres fenêtres aient les mêmes dimensions (nautilus, gedit...), gdevilspie est un peu dépassé... :-\
 +
 +Pour palier facilment à ce problème, il va falloir passer par le fichier de configuration !! ^_^ Aller c'est parti !!
 +
 +==== Le fichier de configuration ====
 +Tout d'abord, il faut créer la règle :
 +  * Allez dans le dossier de devilspie ($HOME/.devilspie)
 +  * Créez un document > fichier vierge
 +  * Appelez le "Nautifox.ds" //(Nauti(lus & Fire)fox ... ^_^)// et ouvrez le pour l'éditer.
 +Insérez ce bloc dans le fichier :
 +  ; generated_rule Nautifox
 +  ( if
 +  ( begin
 +  ( or
 +  ( contains ( application_name ) "Firefox" )
 +  ( contains ( application_name ) "File Manager" )
 +  )
 +  )
 +  ( begin
 +  ( geometry "1100x800+281+30" )
 +  ( println "match" )
 +  )
 +  )
 +Ce code fonctionne de la manière suivante : //"Si le nom de l'application contient "Firefox" ou "File Manager" alors, la fenêtre créée aura une largeur de 1100 pixels, une hauteur de 800 pixels, et sera positionnée à 281 pixels du bord gauche et à 30 pixels du bord supérieur"//.
 +
 +Ça, c'est dit !! :-P
 +
 +Bon voilà, vous avez la structure de base pour configurer plusieurs fenêtres différentes avec la même règle de taille, à vous de jouer maintenant ;-)
 +
 +
 +===== Conclusion =====
 +Voilà, maintenant vous savez comment gérer vos fenêtres sous OpenBox.
 +Vous pouvez définir la taille et/ou la position comme bon vous semble. Alors éclatez-vous !! ;-)
 +
 +Pour cela, n'oubliez pas, 2 méthodes existent :
 +  * Modification du rc.xml
 +  * Ajout d'une règle dans devilspie via gdevilpie.
 +
 +Merci d'avoir lu cette page. Si vous rencontrez des problèmes en la suivant ou des erreurs s'y sont infiltrées, n'hésitez pas à me contacter et/ou à les corriger.
 +
 +Bonne continuation à tous et à toutes ^_^
 +----
 +
 +//Contributeur : [[utilisateurs:Fenouille84]]//