Hier je vous ai presenté un début de hack pour une barre de statut personalisée… J’ai ajouté quelques éléments incontournables pour un laptop : le reseau wifi sur lequel on est connecté et la qualité du signal.

Continuons donc sur notre lancée et détaillons le bout de code : la fonction status.

Vim - code editor
La commande “echo -n” englobe le reste des commandes qui suivent (les “\” permettent d’aller à la ligne sur l’éditeur sans sortir de la commande).
'Cpu:' `{cpufreq-info -f | sed 's/000//;'} 'MHz' '|' \
Comme nous somme dans la commande echo, pour afficher du texte ‘Cpu:‘ il suffit de le placer dans des tildes ‘. Suite à ce morceau de texte, nous trouvons une série de commandes de placées dans un conteneur`{commande1 | commande2}. Les commandes sont séparées par un |. C’est un principe de base des commandes UNIX.
La première commande “cpufreq-info -f” . cpufreq-info est un programme qu’il faut installer sur le système et qui permet d’afficher les infos sur le processeur. Ici, utilisé avec le paramètre “-f” il nous retourne la fréquence en kHz.
La seconde commande “sed ’s/000//;’” appelle sed un editeur de texte vieux comme le monde afin de supprimer une chaine de ‘000′ car la fréquence retournée est en kHz (100000kHz = 100MHz).
'Temp:' `{cat /proc/acpi/thermal_zone/THRM/temperature | grep 'temperature' | sed 's/.*://;'} '|' \
Nous passons directement aux nouveaux éléments “cat /proc/acpi/thermal_zone/THRM/temperature” suivi de “grep ‘temperature’” et enfin la commande “sed” pour mettre en forme la chaine de caractère.
La commande cat est une commande du système de base Linux et permet d’afficher un fichier de texte. Ici elle affiche le contenu du fichier système “/proc/acpi/thermal_zone/THRM/temperature”. Le noyeau Linux maintient à jour de nombreux pseudo-fichiers pour communiquer avec le reste du système (plus de détails ici par exemple).
Comme la commande cat nous sort plusieurs lignes, la commande grep permet d’afficher la première qui contient ‘temperature’. A ce stade il ne reste qu’a nettoyer la ligne restante avec l’éditeur sed.
'Bat:' `{cat /proc/acpi/battery/BAT1/state | grep remaining | sed 's/.*://;'} '/' `{cat /proc/acpi/battery/BAT1/info | grep 'design capacity:' | sed 's/.*://;'} '|' \
Cette suite de commandes reprend exactement le même principe que celle pour la température.
'Wifi:' `{iwconfig wlan0 | grep 'ESSID:' | sed 's/.*://;'} `{iwconfig wlan0 | grep Quality | sed 's/.*y=//;' | sed 's/.100.*//;'} '% |' \
A ce stade vous devez être en mesure de comprendre globalement le principe de cette suite de commandes. iwconfig permet d’afficher ou modifier les infos des cartes wireless (ici la carte wlan0). Nous récupérons la ligne contenant le ‘ESSID’ et nous la nettoyons. Même procédure pour la qualité du signal. A noter qu’ici nous appelons 2 fois la commande sed car il y a des chaines de caractères à enlever avant et après le champ désiré!
`{date}
Enfin, la commande la plus simple – on aurait du commencer par elle
– date qui retourne la date complète.
Alors à vos hacks !!!!