Goto/offset/voffset (fr)
From Conky PitStop
Goto/offset/voffset
Langue | English Français |
Préambule
Vous allez devoir travailler un peu sur les "intervalles" pour placer précisément du texte dans votre fenêtre de Conky. Vous avez lu la page "Intervalles" dans Conky j'espère.
Quelques recommandations à prendre en compte :
1. Pour la section avant-TEXT, ces lignes sont nécessaires pour fixer la sortie des pourcentages sur 2 chiffres et l'utilisation d'unités courtes :
short_units yes pad_percents 2
short_units affichera M à la place de M/b ou G au lieu de G/b. Et pad_percents forcera tous les affichages en % avec des nombres à deux chiffres, sauf si vous utilisez un autre programme comme vnstat pour récupérer des valeurs. Une autre commande utile pour placer les chiffres est ${goto} : cette commande utilise la décimale comme point de référence pour les alignements.
2. Si les alignements de texte sont des facteurs critiques pour votre affichage, je répète que des polices à chasse fixe sont importantes.
3. Un autre point à considérer est la police et sa taille. Par exemple, la police "woodbadge" utilisée ci-dessous N'EST PAS une police à chasse fixe et avec une taille de 40, un simple espace est beaucoup plus large qu'avec (par exemple) la police DejaVu Sans Mono:bold:size=9. Pensez à désactiver les polices (avec ${font}) avant de commencer une nouvelle ligne ou avant d'ajouter un espace pour la commande suivante, sauf si vous voulez un plus grand espace.
Par exemple:
${font woodbadge:size=40}Name: ${font DejaVu Sans Mono:bold:size=9}Bruce Address: 123 Any St.${font}
s'affichera différemment de
${font woodbadge:size=40}Name:${font DejaVu Sans Mono:bold:size=9} Bruce Address: 123 Any St.${font}
à cause du changement de police et de la position de l'espace.
Regardez où est l'espace entre :
Name: ${font DejaVu Sans Mono:bold:size=9}Bruce
et
Name:${font DejaVu Sans Mono:bold:size=9} Bruce
C'est la seule différence entre ces deux lignes.
Commençons
A présent, que font ${goto}, ${offset} et ${voffset}? Ces commandes placent le texte à des endroits précis dans la fenêtre de Conky.
${goto xx} – utilisé habituellement avec un nombre positif, place le texte à xx pixels à droite de zéro . “Zéro” est important, c'est le côté gauche de votre conky. Donc -xx va déplacer le texte à gauche de zéro (vous risquez donc de ne pas voir votre texte). En résumé, si vous avez un conky de 1000 pixels de large, 0 est le pixel le plus à gauche et 999 le pixel le plus à droite.
${offset xx} déplace le texte de la même manière mais démarre de l'endroit d'où vous l'appelez.
Regardez les trois lignes dans l'exemple ci-dessous (notez la police utilisée) :
Line 1 a son texte en désordre, mais avec ${goto 0} "This is" sera à la bonne place. Et ${goto 54} affichera “text.” à la fin de la phrase.
Lines #2 & 3, montrent ce que ${offset} peut faire.
${font DejaVu Sans Mono:bold:size=9} Line 1: ${goto 54}text.${goto 0}This is Line 2: This is${offset 80}text Line 3: ${offset 80}text${goto 0}This is ${font}
Comme vous le voyez, les lignes 2 & 3 utilisent la même commande “${offset 80}text” mais placent “text” à différents endroits dans la ligne.
Maintenant, regardons ${voffset} de plus près
Avant de regarder cette commande, je vous avertis que "chaque fois" que vous utiliserez cette commande, vous créerez un espace vide en dessous. en voici la raison, disons que vous créez ce conky de 5 lignes :
TEXT ${font DejaVu Sans Mono:bold:size=9}line 1 line 2 line 3 line 4 line 5${font}
Vous créez un conky de 5 lignes (dont la taille est déterminée par la police utilisée) sur votre écran !
Maintenant, utilisons ${voffset} et déplacons les lignes vers le haut :
${font DejaVu Sans Mono:bold:size=9}line 1 ${voffset -15}${goto 54}line 2 ${voffset -15}${goto 108}line 3 ${voffset -15}${goto 162}line 4 ${voffset -15}${goto 216}line 5${font}
Vous utilisez donc 5 lignes de code, même si vous avez déplacé la "position de l'affichage", c'est tout ce que vous avez fait : "déplacer le position de l'affichage" comme ceci :
Et c'est pour cette raison que nous pouvons avoir des choses comme ceci (cf Barres et textes):
La suite de ${voffset xx}
${voffset xx}
- un nombre positif déplace le texte vers le BAS
- un nombre négatif déplace le texte vers le HAUT
Prenons un exemple :
NOTE: Cet exemple provient d'un de mes conkys, j'ai enlevé la commande ${color} pour plus de lisibilité.
TEXT ${font woodbadge:size=40}IP:${font} ${font DejaVu Sans Mono:bold:size=9}Up:${upspeed eth0} k/s ${totalup eth0} ${addr eth0} Down:${downspeed eth0} k/s ${totaldown eth0}${font}
Comme vous le voyez, j'utilise une "grosse" police pour afficher le texte "IP:" et les trois lignes suivantes qui affichent les vitesses d'upload et de download et l'adresse IP sont dans une police plus petite, à chasse fixe.
Vous avez donc 4 lignes à afficher à l'écran :
IP: Up: 0 K/s 2.68M xxx.xxx.xxx.xxx Down: 0 k/s 9.34M
Mais nous voulons tout afficher sur la même ligne, on utilisera 3 ${goto xx} et 1 ${voffset xx}. Pourquoi 1 seul ${voffset} vous demandez-vous ! C'est simple, une fois utilisé, il déplace "tout ce qui suit" vers le bas ou vers le haut.
On commence donc avec ${goto} pour déplacer la 4ème ligne après le texte "IP:". Pourquoi commencer par la dernière ligne ? “Down” à plus de caractères que “Up”, c'est donc lui qui sera le plus prêt de "IP:", donc on le place en premier.
TEXT ${font woodbadge:size=40}IP:$font ${font DejaVu Sans Mono:bold:size=9}Up:{upspeed eth0} k/s ${totalup eth0} ${addr eth0} ${goto 85}Down:{downspeed eth0} k/s ${totaldown eth0}
Pas mal ! Faisons de même pour la 3ème ligne puis avec la ligne 2, je place le ${goto} après la commande ${font}, c'est une habitude, ça na pas trop d'importance.
TEXT ${font woodbadge:size=40}IP:$font ${font DejaVu Sans Mono:bold:size=9}${goto 99}Up:{upspeed eth0} k/s ${totalup eth0} ${goto 85}${addr eth0} ${goto 85}Down:{downspeed eth0} k/s ${totaldown eth0}
Bien, maintenant toutes les ligns s'affichent à droite de "IP:". Il faut à présent les déplacer vers le haut avec ${voffset} jusqu'à obtenir un affichage correct. Placer ${voffset} sur la deuxième ligne montera toutes les lignes suivantes.
TEXT ${font woodbadge:size=40}IP:$font ${font DejaVu Sans Mono:bold:size=9}${voffset -45}${goto 99}Up:{upspeed eth0} k/s ${totalup eth0} ${goto 85}${addr eth0} ${goto 85}Down:{downspeed eth0} k/s ${totaldown eth0}
Voilà à quoi ça ressemble dans mon conky, avec le code complet :
TEXT ${color2}${font woodbadge:size=40}IP:${font}${color} ${font DejaVu Sans Mono:bold:size=9}${voffset -45}${goto 99}${color9}Up:${color}${upspeed eth0} k/s ${totalup eth0} ${goto 85}${addr eth0} ${goto 85}${color3}Down:${color}${downspeed eth0} k/s ${totaldown eth0}${color}${font}
Comme je le disais au début de la page :
short_units yes pad_percents 2 TEXT
sont deux variables très utiles et il y en a une autre qui sera du meilleur effet sur votre conky si vous utilisez les "Processus"
short_units yes pad_percents 2 top_name_width 7 TEXT
top_name_width – largeur pour les valeurs de $top_name (la valeur par défaut est de 15 caractères).
… donc "top_name_width 7" limitera les noms des processus à 7 caractères et permettra un alignement exact des valeurs avec $goto.
Le conky ci-dessous affichera les processus qui sont affichés dans la fenêtre de droite. J'adore comme les décimales sont bien alignées !
default_color FFDEAD #NavajoWhite color0 FFFFF0 #Ivory color1 CD5C5C #IndianRed #00CED1 DarkTurquoise #FFA07A LightSalmon #00FFFF Cyan color2 FF8C00 #Darkorange #D2691E #Chocolate color3 7FFF00 #Chartreuse color4 778899 #LightSlateGrey color5 DCDCDC #Gainsboro color6 00BFFF #DeepSkyBlue # colours below used by colorize script color7 48D1CC #MediumTurquoise color8 FFFF00 #Yellow color9 FF0000 #Red pad_percents 2 top_name_width 7 minimum_size 120 100 TEXT ${goto 10}${color4}${cpubar cpu0 25,160} ${voffset -33}${goto 20}${color0}${font dodger:size=15}CPU${font}${goto 120}${voffset -3}${font DejaVu Sans Mono:size=12}${cpu cpu0} %${font} ${voffset 10}${goto 10}${color3}Name${goto 85}CPU${goto 135}MEM${color} ${voffset 5}${goto 10}${top name 1}${goto 70}${top cpu 1}${goto 120}${top mem 1} ${goto 10}${top name 2}${goto 70}${top cpu 2}${goto 120}${top mem 2} ${goto 10}${top name 3}${goto 70}${top cpu 3}${goto 120}${top mem 3} ${goto 10}${top name 4}${goto 70}${top cpu 4}${goto 120}${top mem 4} ${goto 10}${top name 5}${goto 70}${top cpu 5}${goto 120}${top mem 5} ${goto 10}${top name 6}${goto 70}${top cpu 6}${goto 120}${top mem 6} ${goto 10}${top name 7}${goto 70}${top cpu 7}${goto 120}${top mem 7} ${goto 10}${top name 8}${goto 70}${top cpu 8}${goto 120}${top mem 8} ${goto 10}${top name 9}${goto 70}${top cpu 9}${goto 120}${top mem 9} ${goto 10}${voffset 33}${color4}${membar 25,160} ${voffset -33}${goto 20}${color0}${font dodger:size=15}MEM${font}${goto 120}${voffset -3}${font DejaVu Sans Mono:size=12}${memperc} %${font} ${voffset 10}${goto 10}${color3}Name${goto 85}CPU${goto 135}MEM${color} ${voffset 5}${goto 10}${top_mem name 1}${goto 70}${top_mem cpu 1}${goto 120}${top_mem mem 1} ${goto 10}${top_mem name 2}${goto 70}${top_mem cpu 2}${goto 120}${top_mem mem 2} ${goto 10}${top_mem name 3}${goto 70}${top_mem cpu 3}${goto 120}${top_mem mem 3} ${goto 10}${top_mem name 4}${goto 70}${top_mem cpu 4}${goto 120}${top_mem mem 4} ${goto 10}${top_mem name 5}${goto 70}${top_mem cpu 5}${goto 120}${top_mem mem 5} ${goto 10}${top_mem name 6}${goto 70}${top_mem cpu 6}${goto 120}${top_mem mem 6} ${goto 10}${top_mem name 7}${goto 70}${top_mem cpu 7}${goto 120}${top_mem mem 7} ${goto 10}${top_mem name 8}${goto 70}${top_mem cpu 8}${goto 120}${top_mem mem 8} ${goto 10}${top_mem name 9}${goto 70}${top_mem cpu 9}${goto 120}${top_mem mem 9}${font}${color}