wmii | statusbar – suite…
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.
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 !!!!



Bonjour,
je viens de tomber sur ta status bar, question : sa marche pour n’importe quelle distribution? Autrement quel est ton gestionnaire de fenêtre?
Hello!
Mon gestionnaire de fenêtre, c’est wmii! La status bar est à part entière une partie de wmii.
a ok. Donc tu n’utilises aucun environnement de bureau mais juste le serveur X et wmii?
C’est tout de même plus crade qu’un conky-cli -i 1 :°
Erus*, est ce que conky est un WM?
Non.
Il faut comparer ce qui est comparable…
Je parlais de l’utilisation de commandes shell dans la status bar au lieu d’utiliser conky-cli… C’est pas dur à piger que c’est moins crade d’utiliser conky plutot que 15 commandes shell doublées de gros coups de sed/grep…
Désolé pour l’aigreur :°
Et pour être constructif, voilà mon conkyrc:
TEXT
CPU: $cpu% – $freq_g Ghz | RAM: $mem${if_up wlan0} | WiFi: ${wireless_essid wlan0} – ${wireless_link_qual_perc wlan0}%$endif | BAT: ${battery_percent BAT1}% | UP: $uptime_short | ${time %a %d %b %Y – %H:%M:%S}
(conky-cli est dans l’AUR)
Erus, ouais je connais conky (tout du moins la version desktop)… As tu un screenshot du tiens?
Le mien est utilisé dans ma statusbar, donc ça donne juste les mêmes infos que toi, mais je trouve ça plus clean de le centraliser.
en attendant, voilà ce que ça donne en action:
http://www.monsterup.com/upload/1260137848743.png