Apportez votre aide…
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 !!
- 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.
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>
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é
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.
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.
- Ubuntu 10.04 - Lucid Lynx
- OpenBox 3.4.10
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 &
sudo apt-get install python-wnck
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
- 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 !!
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 : Fenouille84