[Astuce] i3wm : liste des processus les plus actifs
Quand j'utilisais conky, l'un de mes objectifs était de connaître la liste des processus les plus actifs. En effet, il n'était pas rare (et ça continue aujourd'hui) qu'un programme s'affole un peu en mangeant un peu trop de ressources. Mon passage à i3-wm m'a légitiment fait abandonner conky puisque j'ai toujours une fenêtre affichée en plein écran. Du coup, j'ai décidé d'ajouter une barre qui s'affiche uniquement quand j’appuie sur une touche.
Voici un aperçu :
Le code source du script est en shell :
#!/bin/sh
echo "{\"version\":1}"
INFO='#E9F1FF'
NORMAL='#B3FF6C'
WARNING='#FF6836'
CRITICAL='#FF474A'
echo "[[]"
while true; do
(
echo -n ",["
ps ux --sort -%cpu | head -n 30 | sed 's/\s\{2,\}/ /g' | cut -d" " -f3,11 | uniq | grep -v uniq | egrep -v '^0.0' | egrep '^[0-9.]* [a-z]' | while read cpu bin; do
if [ $(echo "if (${cpu} < 3 ) 1 else 0" | bc) -eq 1 ]; then
COLOR=$INFO
elif [ $(echo "if (${cpu} < 40.0 ) 1 else 0" | bc) -eq 1 ]; then
COLOR=$NORMAL
elif [ $(echo "if (${cpu} < 70.0 ) 1 else 0" | bc) -eq 1 ]; then
COLOR=$WARNING
else
COLOR=$CRITICAL
fi
echo -n "{\"full_text\": \" $bin ($cpu%) \", \"color\": \"$COLOR\"},"
done
echo "]"
) | sed 's/,\]/]/'
sleep 5
done
Au niveau de la conf de i3, voila comment j'ai procédé :
bar {
status_command /chemin/vers/le/script
workspace_buttons yes
position top
tray_output none
mode hide
modifier mod1
/* d'autres confs */
}
That's all folks!