Arrêter Redshift pendant une lecture vidéo
Salut !
Dans un article précédent, j'avais évoqué des astuces pour s'abîmer un peu moins les yeux devant un écran. Et j'avais cité le programme Redshift à cette occasion, qui a la particularité de changer la balance des couleurs en fonction de l'heure de la journée.
Donc dans mon autostart (le script qui lance des programmes au démarrage de l'ordinateur), j'avais ajouté un 'redshift -l 48:3'. J'en suis très content, le seul problème c'est que si je dois rajouter une vidéo, je préfère que la balance des couleurs ne soit pas niquée détruite. Donc à chaque fois que je voulais matter une vidéo, je me retrouvais à tuer le processus, et à le relancer une fois fini, c'est un peu une perte de temps. Donc je me suis sorti les doigts du cul j'y ai vu un bon prétexte de m'amuser un peu, j'y ai réfléchi dans mon coin, et finalement Elzen m'en a fait un en trois minutes quand je lui ai demandé une petite aide, merci à lui.
Comme je suis un grand débutant dans la programmation, il y a de grandes chances qu'il vous soit de peu d'intérêt, mais je suis sûr qu'il servira à quelques personnes.
#! /bin/bash
while true
do
if test "$(pidof vlc)" = ""
then if test "$(pidof redshift)" = ""
then pkill -USR1 redshift -l 48:3 &
fi
elif test "$(pidof redshift)" != ""
then pkill -USR1 redshift
fi
sleep 10
done
Donc comme vous pouvez le voir, on a une boucle en while avec un test de type if, then, else. pidof va ici chercher le pid de vlc ou de redshift dans les processus, et l'identifiant est comparé à "", qui indique ici une chaîne vide, une manière efficace de tester si ils sont en marche ou pas. Le reste est donc facile à comprendre. On n'oublie pas un sleep (5 ou 10 secondes), afin de ne pas mettre le processeur par terre comme on a une boucle infinie. Et voilà !
Ceci dit, il y a peut-être un moyen de trouver une autre manière de faire pour ne pas avoir un programme qui tourne toujours en tâche de fond, mais pour l'instant je m'en contente !