TIP Xorg X11 et transparence
Un article de Gentoo Linux Wiki.
|
Terminaux / Shells • CD Live • X • Portage • Système • Systèmes de fichier • Autres |
Sommaire |
[modifier] Introduction
Ce guide va vous montrer comment obtenir X.org et le faire marcher sous Linux avec l'option X Composite (l'installation est présentée sous Gentoo, mais cela devrait marcher tout aussi bien sur d'autres distributions).
[modifier] Configuration
[modifier] Première étape
Obtenir la version d'X.org la plus récente.
Nous ne pouvons rien faire si nous n'avons pas X.org. Pour l'obtenir sur Gentoo, c'est très simple :
echo "x11-base/xorg-x11 ~x86" >> /etc/portage/package.keywords emerge xorg-x11
Une fois la compilation d'X.org effectuée, vous pourrez commencer à l'utiliser. Si vous utilisiez déjà X.org alors le fichier de configuration /etc/X11/xorg.conf sera utilisé. Si par contre, vous aviez XFree86 d'installé alors il chargera automatiquement le fichier /etc/X11/XF86Config mais il est recommandé de le renommer xorg.conf.
Pour lancer X.org, il suffit de lancer X de la même manière que d'habitude :
startx
Maintenant, vous avez déjà obtenu les avantages de ce nouveau X.org sans même changer le fichier de configuration. En effet, vous utilisez XDamage qui devrait afficher votre écran de manière plus efficace qu'avant. Vous allez bien sûr aussi rencontrer certaines corrections de bugs. Évidemment, ceci est intéressant, mais nous en voulons PLUS !
Allons-y.
[modifier] Deuxième étape
Mettre en place l'extension X Composite
Cette étape est très simple (et ceci pour toutes les distributions linux). Premièrement, ouvrez votre fichier xorg.conf :
nano /etc/X11/xorg.conf
(note: remplacer nano par votre éditeur favori)
Ajoutez (pas modifier) simplement les lignes suivantes à ce fichier (au début ou à la fin du fichier, cela n'a aucune importance).
| Fichier : /etc/X11/xorg.conf |
Section "Extensions"
Option "Composite" "Enable"
EndSection
|
À présent, la prochaine fois que vous redémarrerez X.org l'extension X Composite sera activée. Cette extension permet d'écrire tous les changements dans l'affichage de l'écran dans un buffer extérieur, puis le renvoie au framebuffer Cela permet certains effets tels que la vraie transparence et des ombres (ce que nous allons voir juste après).
Afin de vérifier que cette extension est bien chargée, regardez simplement si la ligne suivante apparaît dans /var/log/Xorg.0.log.
(II) Initializing built-in extension COMPOSITE
[modifier] Troisième étape
Certains gestionnaires de fenètres comme fwmn et e17 utilisent leur propre gestionaire pour l'extension composite, vous ne pouvez pas utiliser xcompmgr avec eux.
Voyez directement leurs documentations.
[modifier] Activer les ombres et la vraie transparence
Il est temps maintenant de se faire plaisir !
Nous utiliserons deux outils indépendants de votre gestionnaire de fenêtres.
- xcompmgr pour l'extensions composite
- transset pour activer nos effets
echo "x11-misc/xcompmgr ~x86" >> /etc/portage/package.keywords emerge xcompmgr
(note : Nous devons ajouter x11-misc/xcompmgr au fichier package.keywords car c'est une version "beta" considérée comme instable. Mais ne vous inquiétez pas, vous pouvez arrêter xcompmgr quand vous le souhaitez sans abimer quoique ce soit.)
Après avoir obtenu xcompmgr, nous avons besoin de transset.
echo "x11-misc/transset ~x86" >> /etc/portage/package.keywords emerge transset
Nous avons maintenant tout ce dont nous avons besoin pour activer les ombres et la vraie transparence. Commençons par lancer xcompmgr. À partir d'une console à l'intérieur de X.org, exécutez ceci :
xcompmgr -c &
Ceci active des ombres générées par xcompmgr. Vous devriez maintenant voir des ombres sous toutes vos fenêtres.
Si ça ne fonctionne pas, peut-être n'avez vous pas redémarré X ?
Astuce : il est possible que vous ayez des problèmes de rafraichissement, par exemple si xcompmgr s'exécute plus vite que votre gestionnaire de fenêtre (surtout avec des pc très puissants et des gestionnaire de fenêtre très léger). Dans ce cas, affectez toujours à la commande xcompmgr, une priorité plus faible.
nice xcompmgr -c &
Nous voulons maintenant voir à travers nos fenêtres. Exécutez ceci dans la même console :
transset
Votre curseur a dû changer, cliquez simplement sur la fenêtre que vous souhaitez rendre transparente. Vous pouvez aussi définir une certaine valeur définissant l'opacité de la fenêtre. Essayez :
transset .2
(note : 0 = transparence totale, 1 = pas de transparence)
Afin d'avoir une fenêtre complètement opaque, exécuter de nouveau transset et cliquer sur la fenêtre en question.
À présent, vous devez obtenir quelque chose comme ceci :
Afin de tout désactiver, il suffit simplement de taper dans la console :
killall xcompmgr
Ceci éteindra xcompmgr et désactivera les ombres ainsi que les transparences définies.
Ceci est seulement un aperçu de ce que peu réaliser X.org 6.8. Une fois que les gestionnaires de fenêtres et les applications commenceront à utiliser ces options, nous n'auront plus besoin de commande telle que transset pour obtenir ces options. Nous verrons aussi des applications qui utilise la tranparence intelligemment en rendant par exemple qu'une seule partie de l'application transparente.
[modifier] Executer xcompmgr a chaque session
Rajouter xcompmgr dans votre fichier ~/.xsession
xcompmgr & xcompmgr -c & xcompmgr -c -r 10 & xcompmgr -c -r 10 -f -F &
[modifier] Utilisateur des drivers nVidia propriétaires :
Si vous utilisez une carte graphique nVidia et les drivers nVidia, il est intéressant d'ajouter la ligne suivante dans la section Device de xorg.conf, Vous obtiendrez une accélération notable lorsque vous utiliserez l'extension X Composite.
| Fichier : /etc/X11/xorg.conf |
Option "RenderAccel" "true" |
Pour les cartes Nvidia qui supporte l'Option Backingstore, rajouter la ligne suivante dans la section Screen.
| Fichier : /etc/X11/xorg.conf |
Option "backingstore" "true" |
Cette ligne active le support du backing store pour le serveur X, un mécanisme grâce auquel chaque pixel est gardé en mémoire par le serveur, ce qui allège les envois effectués au clients X lorsque les données doivent être réaffichées.
Pour utilser l'accélération 3D avec l'extension X Composite, il vous faudra aussi rajouter la ligne suivante dans la section Device.
| Fichier : /etc/X11/xorg.conf |
|
Option "AllowGLXWithComposite" "True" |
[modifier] Utilisateur des drivers ATI propriétaires :
Si vous utilisez une carte graphique ATI et les drivers ATI, il est intéressant d'ajouter la ligne suivante dans la section Screen de xorg.conf :
| Fichier : /etc/X11/xorg.conf |
Option "backingstore" "true" |
Cette ligne active le support du backing store pour le serveur X, un mécanisme grâce auquel chaque pixel est gardé en mémoire par le serveur, ce qui allège les envois effectués au clients X lorsque les données doivent être réaffichées.
[modifier] Problèmes et solutions
[modifier] Xcompmgr refuse de se lancer
Certains gestionaires de fenetres utilisent leur propre service de gestion de l'extension composite (fwmn et xfce par exemple). Voyez directement leur configuration pour activer la tranparence.
Another composite manager is already running
Si vous lancez deux xcompmgr vous obtiendrer aussi ce message d'erreur (il ne peut exister qu'un seul instance de xcompmgr par serveur X et par display).
[modifier] Problèmes avec mplayer
Si vous avez des problèmes avec la vidéo en utilisant mplayer, où si vous souhaiter rendre celle-ci transparente (ou encore, si vous n'arrivez pas à voir la fenêtre à travers une autre fenêtre transparente), essayez ceci :
mplayer -vo x11 ma_vidéo
[modifier] Problèmes avec OpenGL/GLX
Descriptions : Blender, Quake3, doom3, stellarium et meme glxinfo fait planter ma machine.
Solution : killall xcompmgr
[modifier] Commentaires
Attention : cette commande peut augmenter fortement la charge du CPU par rapport à un lancement sans l'option. (par exemple, 19% chez moi devient 44%).
source : TIP Xorg X11 and Transparency

