Comment résoudre les conflits entre VNC et Compiz Fusion

Comment résoudre les problèmes de compatibilité entre compiz-fusion et VNC
Un des défauts de compiz fusion est qu’il n’est pas compatible avec certains types d’applications comme certain jeux, vlc, ou encore VNC.

On a déja vu comment désactiver le gestionnaire d’effets 3D compiz fusion via fusion icon, mais cela ne résoud pas tous les problèmes. En effet, lorsqu’on utilise VNC sur un PC équipé d’une version d’ubuntu, compiz monopolise l’affichage et aucun rafraichissement ne s’effectue du coté client…

[edit] Il existe une solution beaucoup plus simple qui permet de résoudre ce problème que celle qui va vous être présenté. Ouvrir un terminal ou appuyer sur ALT+F2 et taper gconf-editor. Aller dans /desktop/gnome/remote_access et cocher l’option « disable_xdamage ». Voila c’est tout ;) [/edit]

Plutôt embêtant n’est ce pas ? A ma connaissance il y a deux solutions à ce problème :

  • Supprimer complètement compiz (pas glop !)
  • Ou réussir à désactiver (temporairement) compiz lors d’une connexion VNC.

Comme la première solution ne me satisfaisait pas, j’ai donc essayé de trouver un moyen pour désactiver compiz lors des connexions VNC. Après des heures et des heures de réflexion et d’abstinence (si si je vous jure) j’ai écrit un petit script bash pour faire cela de manière automatique. Voyons comment ça marche :

Tout d’abord il faut télécharger le script.

Puis on va configurer le script afin de choisir sur quels adresses et ports le serveur VNC est susceptible de recevoir des connexions. Pour ça il faut l’ouvrir avec votre éditeur favori afin de modifier les lignes numéro ? et ?. sur lesquelles on peut voir ceci :

if ((netstat -p -n | grep -E "127.0.0.1(%[1-9]*)*:5900.*ESTABLISHED")||(netstat -p | grep -E "127.0.0.1(%[1-9]*)*:5900.*ESTABLISHED"))

On voit apparaitre deux fois : 127.0.0.1(%[1-9]*)*:5900 , chacun correspondant à une adresse d’écoute de votre serveur VNC. Par exemple mon pc à l’adresse 192.168.0.2 dans mon réseau local et VNC écoute sur le port 5900 (port d’écoute par défaut de VNC) et également truc.free.fr sur le port 5901 j’ai donc changé les lignes ? et ? par :

if ((netstat -p -n| grep -E "192.168.0.2(%[1-9]*)*:5900.*ESTABLISHED")||(netstat -p | grep -E "truc.free.fr(%[1-9]*)*:5901.*ESTABLISHED"))

Faites tout de même attention aux paramètres de la commande netstat, le paramètre -n indique que l’on veut une résolution numérique des adresses. par exemple localhost est transformé en 127.0.0.1. il ne faut donc pas utiliser cette commande quand on utilise un DNS (cf ci dessus)

Puis sauvegarder et rendre exécutable le script :

chmod +x scvnccompiz

enfin on peut exécuter le script en faisant

./scvnccompiz 0 #on démarre en mode déconnecté (aucune connexion VNC n'est active)
./scvnccompiz 1 #on démarre en mode déconnecté (connexion VNC en cours)

Enfin pour ceux qui voudraient lancer le script au démarrage, il suffit d’aller dans Systèmes>Préférences>Applications au démarrage, cliquer sur nouveau et ajouter le script en utilisant la ligne de commande :

bash CHEMIN_VERS_LE_SCRIPT/scvnccompiz 0

Comment_lancer_le_script_au_demarrage

Voila, problème résolu ;)

Articles en rapport:

6 thoughts on “Comment résoudre les conflits entre VNC et Compiz Fusion

  1. Merci beaucoup pour ce script ma fois bien pratique quand on aime à la fois utiliser Compiz et VNC, je l’adopte tout de suite et il marche!

  2. salut,

    excellent script que je vais tester de suite, à adopter et à mettre sur le wiki ubuntu s’il marche.

    Celui ci est’il fonctionnel sur KDE 4.x (notamment Kubuntu) dont le problème est identique et les effets son gérér ici par KWin en lieu et place de Compiz ?

    Je vais essayer de faire un test dès que possible sur Kubuntu 10.04 LTS et vous faire un retour.

    • Salut,

      Pour le moment le script n’est pas compatible pour Kwin… Mais, il est peut-être possible de l’adapter pour Kwin.

      Je ne sais pas comment fonctionne Kwin mais Compiz (via Fusion Icon) permet de remplacer le mode d’affichage en cours par un autre existant. Cela permet (entre autre) de désactiver les effets qui gênent VNC.
      Cela s’éxécute grâce aux commandes contenues dans le script (comme : metacity –replace&).

      Le problème que j’ai rencontré est qu’on ne peut pas simplement tuer Compiz sans déstabiliser complètement l’affichage de Gnome, et je mettrai ma main à couper que c’est pareil avec KDE :p

      Bref, peut être existe t-il des commandes qui permettent de modifier le mode d’affichage courant et de désactiver les effets qui empêchent le bon fonctionnement de VNC. Si tel est le cas, alors il suffit de remplacer les commandes présentes dans le script… ;)

      En tout cas merci pour le commentaire :), et bon courage

    • Ah effectivement c’est une solution des plus simple. Dommage que je ne sois pas tombé dessus plus tôt ! En tout cas merci :)