[Conky] Script de démarrage

Conky est maintenant configuré… Prochaine étape, le démarrage automatique à l’ouverture de la session. On se place donc dans notre home où on va créer un dossier .conky pour y placer le script: mkdir .conky. On va ensuite écrire le script dans un fichier que l’on nommera .conkyboot.sh : vim .conkyboot.sh; utilisez ici l’éditeur avec lequel vous êtes à l’aise, nano, vi, vim ou autres.

Le script est très simple et tient en trois lignes:

#!/bin/bash
sleep 20;
conky -d;

Il faut ensuite rendre le fichier exécutable: chmod +x .conkyboot.sh.
Dernière étape, programmer l’exécution du script à chaque démarrage de la session. Pour cela, onglet Système – Préférences – Applications au démarrage. Puis Ajouter, et compléter le champ avec /home/user/.conky/.conkyboot.sh en remplaçant user par votre nom d’utilisateur. Remplissez le champ Nom avec Conky par exemple.

Et voilà, votre conky devrait désormais s’afficher automatiquement 20 secondes après l’ouverture de votre session.

[Conky] Afficher son IP publique

J’avais laissé Conky de côté un petit moment, et j’ai pris le temps ce soir de le réinstaller. Pas encore touché au démarrage automatique lors de la connexion, je veux d’abord vérifier s’il le fait de lui même ou pas. Mais trêve de bavardage, le sujet qui m’intéresse est celui de l’affichage de l’IP publique. J’avais déjà trouver comment afficher mon adresse ip locale et l’adresse de la passerelle.

La solution que j’ai trouvé consiste à aller interroger le site ip.nu avec curl. Néanmoins, le taux de rafraîchissement de conky étant de 2s dans mon cas, il faut trouver un moyen de lancer la commande à un intervalle beaucoup plus long. Notre adresse IP publique n’étant de toute façon pas susceptible de changer toutes les 10s.

Pour ce faire, on utilise donc texeci tempsEnSeconde qui nous permet d’appeler la commande à intervalle de temps régulier. On a donc: texeci 400 curl ip.nu. Toutes les 5 minutes, on interroge donc le site ip.nu. Toutefois, en l’état, le retour est le suivant:

<html>
    <head>
        <title>ip</title>
    </head>
    <body>
        Your IP address is 80.42.124.42
    </body>
</html>

Pas très pratique à afficher dans notre conky. Prochaine étape donc, la récupération dans toute ces balises, de l’adresse ip avec comme vous le devinez certainement un petit grep et une regex. Ce qui nous donne: curl ip.nu | grep -Ewo ‘\b([0-9]{1,3}\.){3}[0-9]{1,3}\b’. Résultat de cette commande: 80.42.124.42. Nous avons notre ip! Par précaution, on peut encore appliquer un uniq, au cas le site se mettrai à renvoyer plusieurs fois l’ip dans sa requête. Donc finalement: curl ip.nu | grep -Ewo ‘\b([0-9]{1,3}\.){3}[0-9]{1,3}\b’ | uniq. On notera au passage que Richard M. Stallman est l’un des auteurs de uniq

AUTHOR
       Written by Richard M. Stallman and David MacKenzie.

On peut maintenant ajouter notre code dans le fichier de conf .conkyrc, ce qui nous donne:

${alignc}Public IP: ${texeci 400 curl ip.nu | grep -Ewo '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' | uniq}

 

Conky sous GNU/Linux

Bonsoir chers lecteurs, bonsoir Google Bot et autres.

Ce soir, un petit article sur conky, programme permettant d’afficher sur votre bureau divers informations concernant votre système, comme par exemple l’uptime de la machine, le % d’utilisation du CPU, l’utilisation de la RAM, l’occupation de vos disques durs ou encore, le titre de musique joué dans RhytmBox.

L’installation s’effectue via un simple sudo apt-get install conky. Il est parfois nécessaire de s’adapter, conky n’étant pas toujours disponible dans les dépôts de toutes les distributions GNU/Linux et il est parfois nécessaire d’ajouter des dépôts de type « non-free ». C’est le cas pour Debian, puisque conky est passé dans le dépôts « non-free » suite à une mise à jour. Néanmoins, l’installation reste à la portée de tous ;).

La configuration des informations à afficher est réalisée via le fichier .conkyrc situé dans votre home directory. Un Ctrl + H vous permettra de le rendre visible. Pour ceux qui n’ont jamais vu à quoi peut ressembler un conky, voilà le mien, remis en place ce soir et légèrement reconfiguré depuis sa dernière utilisation.

Pour ce qui est du code de configuration associé, le voici:

# set to yes if you want Conky to be forked in the background
background yes

cpu_avg_samples 2
net_avg_samples 2

out_to_console no

# Use Xft?
use_xft yes

# Xft font when Xft is enabled
xftfont Bitstream Vera Sans Mono:size=8

own_window        yes    # On dit à Conky de ne pas se mettre sur le bureau mais dans une fenêtre propre
own_window_type   override  # type de fenêtre "maison" (le type desktop convient si on n'a pas d'ombre)
own_window_hints  undecorated,below,sticky,skip_taskbar,skip_pager # définition du type
own_window_transparent yes
own_window_colour hotpink

# Text alpha when using Xft
xftalpha 0.8

on_bottom yes

# Update interval in seconds
update_interval 1

# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes

# Minimum size of text area
#minimum_size 280 5
#maximum_width 150

# Draw shades?
draw_shades no

# Draw outlines?
draw_outline no

# Draw borders around text
draw_borders no

# Stippled borders?
stippled_borders 10

# border margins
border_margin 4

# border width
border_width 1

# Default colors and also border colors
default_color white
default_shade_color white
default_outline_color white

# Text alignment, other possible values are commented
#alignment top_left
#minimum_size 10 10
gap_x 13
gap_y 34
alignment top_right
#alignment bottom_left
#alignment bottom_right

# Gap between borders of screen and text

# Add spaces to keep things from moving about?  This only affects certain objects.
use_spacer no

# Subtract file system buffers from used memory?
no_buffers yes

# set to yes if you want all text to be in uppercase
uppercase no

TEXT
$nodename - $sysname $kernel on $machine
$stippled_hr
${color lightgrey}Uptime:$color $uptime ${color lightgrey}- Load:$color $loadavg
${color lightgrey}CPU Usage:${color #5000a0} ${cpu}% ${cpubar}
${color black}${cpugraph 000000 5000a0}
${color lightgrey}RAM:$color $mem/$memmax - $memperc% $membar
${color lightgrey}Swap:$color $swap/$swapmax - $swapperc% ${swapbar}
${color lightgrey}Processes:$color $processes  ${color grey}Running:$color $running_processes

${color lightgrey}Temperatures:
 CPU:$color ${hwmon 0 temp 2}°C${color grey} - MB:$color ${hwmon 0 temp 1}°C

${color lightgrey}Batterie: $color${battery BAT0} ${battery_bar 5,120} ${battery_percent}%
$color$stippled_hr
${color lightgrey}File systems:
 /        $color${fs_used /}/${fs_size /} ${fs_bar 5,120 /}
$color$stippled_hr
${if_gw}${alignc}${gw_iface}: ${addrs eth0} Gateway: ${gw_ip}${endif}
Down ${offset 45}${totaldown eth0} ${offset 8}    Up ${alignr}${totalup eth0}
${downspeedgraph eth0 22,150 5e7b7b d8deeb} ${upspeedgraph eth0 22,150 99c8e8 618094}
${offset 40}${voffset -21}${downspeedf eth0}k/s
${offset 190}${voffset -14}${upspeedf eth0}k/s
$color$stippled_hr
${color}Name              PID     CPU%   MEM%
${color #ddaa00} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${color}Mem usage
${color #ddaa00} ${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}
${color lightgrey} ${top_mem name 2} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2}
${color lightgrey} ${top_mem name 3} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}

${color #FFFFFF} ${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}
${color #FFFFFF} ${top_mem name 2} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2}
${color #FFFFFF} ${top_mem name 3} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}
${color #FFFFFF} ${top_mem name 4} ${top_mem pid 4} ${top_mem cpu 4} ${top_mem mem 4}

${if_running rhythmbox}
${color lightgrey}${alignc}RhythmBox Now Playing :
${alignc}${exec rhythmbox-client --print-playing-format "%ta - %at"}
${alignc}${exec rhythmbox-client --print-playing-format "%tn - %tt"}
${endif}

La fenêtre ci-dessus ne pas très pratique pour la lecture, je mettrai certainement un lien vers le fichier. Pour lancer conky, taper conky dans un terminal. Dans mon cas, le résultat s’affiche en haut à droite de l’écran. A priori, le démarrage se fait automatiquement à l’ouverture de la session dans la dernière version grâce à l’appel du script .conkyboot.sh, situé dans le dossier .conky.