Ceci est une ancienne révision du document !
Problèmes rencontrés
Transparence avec Openbox
On peut émuler une fausse transparence avec Openbox (qui normalement ne gère pas la transparence), permettant d'afficher le fond d'écran sous le Conky. Normalement, cette configuration fonctionne dans votre conkyrc :
own_window no own_window_transparent yes own_window_type override own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager double_buffer yes
Conky ne s’affiche pas au démarrage de votre session
Au démarrage de votre session, il se peut que Conky soit masqué par d’autres éléments, comme le fond d’écran, qui sont affichés après et donc par dessus. Pour y remédier, il suffit donc de retarder le lancement automatique de Conky.1)
Sans script (plus simple)
Créez une ligne dans votre gestionnaire de session (sur Xfce, on le trouve dans le panneau paramétrage, icone Session et démarrage, par exemple).
conky -p 20
ou
sh -c "sleep 20; conky;"
(réduisez le nombre de secondes en fonction des besoins de votre machine : plus elle démarre vite, plus le nombre de secondes exigé est faible. Une seconde suffit sur des systèmes récents (en 2013)).
Puis redémarrez votre système.
Avec un script
Ce système est plus lourd est n'offre d’intérêt que pour des options de démarrage complexes (comme démarrer plusieurs Conky, par exemple).
On effectue le démarrage retardé à l’aide d’un script qu’on nomme .conkyboot
par exemple, et qu’on place dans le répertoire contenant .conkyrc
c’est-à-dire /home/$USER/
. Voici son contenu :
#!/bin/bash sleep 20; conky;
Le retard, en secondes (20 secondes dans ce script), est à adapter selon ses préférences et le temps de démarrage de la machine.
Penser à rendre le fichier exécutable :
chmod +x ~/.conkyboot
Il faut ensuite spécifier que ce script sera lancé au démarrage. Dans Système → Préférences → Applications au démarrage, cliquer sur Ajouter :
- Nom : Conky
- Commande :
/home/$USER/.conkyboot
Redémarrer le système. Cela devrait fonctionner.
Problème de clignotement
Pour éviter le clignotement éditez le fichier .conkyrc
Et vous mettez "yes" pour :
- double_buffer
On peut aussi rajouter "yes" pour :
- own_window_transparent
Pour que l'option double_buffer fonctionne, le module "dbe" (Double Buffer Extension) doit être activé dans /etc/X11/xorg.conf. On ajoute donc Load "dbe" dans la section Module du xorg.conf après l'avoir sauvegardé :
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.backup sudo xdg-open /etc/X11/xorg.conf
chercher :
Section "Module" ... EndSection
et insérer :
Load "dbe"
dans la liste des modules chargés. Relancer le serveur X (ctrl+alt+backspace) pour que les changements prennent effet.
En cas de problème :
sudo cp /etc/X11/xorg.backup /etc/X11/xorg.conf
Voilà ;)
PS_1 : au cas où ça continue toujours de clignoter, introduire ceci dans .conkyrc /etc/X11/xorg.conf :
Load "glx" Load "dbe" Load "i2c" Load "bitmap" Load "ddc" Load "extmod" Load "freetype" Load "int10" Load "vbe"
Puis, pour vérifier si Conky utilise le double buffer, lancez Conky dans le terminal. Si ces lignes apparaissent :
Conky: failed to set up double buffer Conky: drawing to single buffer
Alors Conky n'utilise pas le double buffer.
PS_2: (ou plus simple, cas perso, ne fonctionne pas si le problème vient de la gestion du double buffer.) Pour supprimer tout clignotement, il faut créer une ligne de "texte pur" légèrement plus large que la plus large des lignes affichées avec des variables ou graph. exemple de ligne texte ajoutée dans .conkyrc (ajuster le nombre de tiret "-" en fontion) : ${color #666666}———————————————————–
Éviter une fenêtre dans la barre des tâches
Deux méthodes :
1. (conky 1.4.2) Il faut rajouter dans le .conkyrc, avant la section TEXT (cette méthode permet de ne pas avoir à lancer un deuxième processus au démarrage) :
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
Les propriétés sont :
- undecorated qui enlève le tour de la fenêtre
- below qui permet de mettre la fenêtre de Conky sous les autres fenêtres
- sticky qui laisse la fenêtre de Conky sur tous les bureaux
- skip_taskbar qui enlève Conky de la barre des tâches
- skip_pager qui enlève Conky du pager (alt-tab)
Ce type ne permet pas de conserver Conky visible lorsque l'on clique sur faire apparaître le bureau. En mettant la ligne :
own_window_type override
On conserve les options évoquées précédemment et en plus on conserve Conky même lorsque l'on clique sur faire apparaître le bureau (il peut y avoir un problème d'affichage des icônes du bureau).
(plus d'info dans le man conky qui est reproduit sur http://conky.sourceforge.net/docs.html).
2. Il faut utiliser le packet devilspie (ce qui nécessite le lancement de conky et devilspie au démarrage ; l'intérêt est que l'on peut gérer plusieurs processus avec devilspie) : installez le paquet devilspie.
Deux méthodes de configuration de devilspie : Pour devilspie ⇐ 0.12
Méthode 1 : créer un fichier:
gedit $HOME/.devilspie.xml
Et vous mettez dedans :
<?xml version="1.0"?> <!DOCTYPE devilspie SYSTEM "devilspie.dtd"> <devilspie> <!-- This flurb configures devilspie to watch for a window called "conky" --> <flurb name="conky"> <matchers> <matcher name="DevilsPieMatcherWindowName"> <property name="application_name" value="conky"/> </matcher> </matchers> <!-- The following controls what actions are preformed --> <actions> <!-- Hide conky from the taskbar and the pager --> <action name="DevilsPieActionHide"> <property name="skip-tasklist" value="TRUE"/> <property name="skip-pager" value="TRUE"/> </action> <!-- Show conky on all workspaces --> <action name="DevilsPieActionSetWorkspace"> <property name="pinned" value="TRUE"/> </action> </actions> </flurb> </devilspie>
Méthode 2 :
Créez un dossier caché dans le home :
mkdir ~/.devilspie
Aller dans ce dossier :
cd ~/.devilspie/
Editer le fichier de configuration (on peut lui donner n'importe quel nom) :
gedit conky.ds
Coller les s-expressions utilisées par devilspie (infos supplémentaires sur http://wiki.foosel.net/linux/devilspie). Un fichier classique pour conky serait :
(if (is (application_name) "ubuntu - conky") (begin (pin) (skip_pager) (skip_tasklist) (below) (wintype "dock") ) )
Quelques explications :
- application_name : nom de l'application
- pin : permet de mettre Conky sur tous les bureaux
- skip_pager : Conky n'apparaît pas quand on fait alt-tab
- skip_tasklist : Conky n'apparaît pas dans la barre des tâches
- below : Conky est toujours dessous les autres fenêtres
- wintype "dock" : permet d'avoir Conky encore visible même lorsque l'on clique sur l'icône pour faire apparaître le bureau
la classe ultime…
Il est possible qu'il faille adapter le champ application_name. Il y a sûrement une méthode plus simple mais j'ai pas encore trouvé… On fait un fichier test.ds dans le dossier caché devilspie avec dedans :
(debug)
Ensuite on lance l'application dont on cherche le nom (conky dans notre cas). Puis on lance devilspie dans la console. Il apparaît dans la console des informations sur les fenêtres ouvertes en ce moment, donc notre application, il suffit de repérer le nom de conky. Une fois cela fait on efface le fichier test.ds
Puis il faut le charger au démarrage : Système → Préférence → Sessions → Programme au démarrage Cliquez sur Ajouter et vous tapez devilspie
Voilà !
Le conky réapparaît parfois brièvement au premier plan, devant mes applications
J'ai rencontré ce problème avec les Conky de largeur variable (quand on affiche les ports ouverts et l'adresse distante par exemple).
Pour y remédier il faut fixer la largeur du Conky, en spécifiant une largeur minimale et une largeur maximale identiques :
minimum_size 260 maximum_width 260
Mon conky est tronqué
Par défaut la taille du buffer de conky est de 128. Si votre conky comporte une grande quantité de textes et d'images, il est possible que tout ne s'affiche pas correctement.
Pour y remédier il faut rajouter au .conkyrc avant la section TEXT :
text_buffer_size 1024
Conky et Gnome-shell
Sous Gnome-shell pensez à modifier votre conkyrc comme suit :
own_window yes own_window_transparent no own_window_type normal own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager #semi-transparent # own_window_argb_visual yes #couleur du font de conky ex:000000 = noire # own_window_colour 000000 #niveau de transparence # own_window_argb_value 0