Développement libre sous Ubuntu

mardi 3 février 2009

Modifier les propriétés de Compiz-Fusion en Perl


J'aime bien les effets bling-bling de compiz notamment la transparence sur les menus, cependant l'utilisation de compiz peut poser quelques problèmes avec les jeux. Dans mon cas, lorsque je lance un jeux sous dosbox avec compiz activé, le jeux apparait comme transparent car le type des fenêtres dosbox est le même que pour les menus déroulant.

La première solution qui vient à l'esprit pour ne plus avoir ce problème, c'est de désactiver compiz pendant le déroulement du jeu, la seconde option c'est de ne pas activer la transparence sur les menus, il existe une troisième option plus pratique : changer le taux de transparence pour les menus (et par la même occasion pour les fenêtre dosbox) pendant le lancement des jeux.

Il faut savoir que compiz sauvegarde ses paramètres dans gconf, vous pouvez voir ces options en lançant gconf-editor et naviguer jusqu'à la clé /apps/compiz/plugins, vous y trouverez tous les paramètres accessible par le Compiz Settings Manager.

Pour pouvoir modifier ces paramètres en perl, il faut installer le paquet libgnome2-gconf-perl :
sudo apt-get install libgnome2-gconf-perl

Dans mon cas, j'aimerai modifier les paramètres du plugin Opacity, Brightness and Saturation.

La clé /apps/compiz/plugins/obs/screen0/options/opacity_matches contient une liste de fenêtres, sélectionnées selon leur class, leur nom ou leur type, chez moi j'ai la valeur suivante :
[class=Tomboy,type=dropdownmenu,class=Empathy]
La clé
/apps/compiz/plugins/obs/screen0/options/opacity_values contient les valeurs associées aux fenêtres, à savoir :
[80,90,93]

Pour modifier ces valeurs, il suffit de lancer le script suivant :

#!/usr/bin/perl
use Gnome2::GConf;
my $key = "/apps/compiz/plugins/obs/screen0/options/opacity_values";
my $value = [80, 100, 93];
my $client = Gnome2::GConf::Client->get_default;
$client->set_list($key, 'int', $value);

L'opacité des menus est mise à jour automatiquement après avoir modifié la valeur dans gconf, les fenêtres de type dropdownmenu ne sont plus transparentes car la valeur a été changée de 90 à 100.

Vous pouvez ainsi créer des scripts qui changent certains paramètres de compiz et éviter les problèmes de compatibilité sans devoir arréter totalement ce dernier.

Aucun commentaire:

Enregistrer un commentaire