-
Installer xmacro (sudo apt-get install xmacro)
-
Créez un fichier appelé "myxmacro" et donnez-lui le contenu suivant :
Code :
MotionNotify 90 90
MotionNotify 120 120
3. Créez un fichier "no.idle.sh" et rendez-le exécutable :
Code :
touch no.idle.sh
chmod +x no.idle.sh
4.4. Créez un fichier "no.idle.sh" et rendez-le exécutable : Code :
touch no.idle.sh
chmod +x no.idle.sh
Donnez-lui le contenu suivant :
Code
#!/bin/bash
# No.idle.sh prevents GNOME to turn IDLE
# if there is any sound sent to speakers
# This script requires the package "xmacro"
# (apt-get install xmacro)
###########################################
# This script requires a textfile called "myxmacro"
# with the following (dummy) content:
# ------------ myxmacro ------------
# MotionNotify 90 90
# MotionNotify 120 120
# ----------------------------------
# You need to fix the path to "myxmacro" in line 31
#
#############################################
# set Log-File
LOG=/home/YOUR_USERNAME/noidle.log
sound=0
silence=0
while true; do
sleep 1
Datum=`date +%d.%m.%Y-%H:%M:%S`
# check if sound is sent to speaker
if pactl list | grep RUNNING > /dev/null; then
echo "[$Datum] Sound (Ping: $sound)" >> $LOG
sound=$((sound+1));
xmacroplay :0 </path/to/myxmacro
silence=0
else
echo "[$Datum] Silence (Ping: $silence)" >> $LOG
silence=$((silence+1));
sound=0
fi
#----------------------------------------------------
done
Vous devez : - fixer le chemin du fichier journal à la ligne 18
C'est fait.
Ce que fait le script : Le script vérifie chaque seconde, s'il y a un son envoyé aux haut-parleurs (en utilisant la commande terminal pactl list | grep RUNNING).
Si la musique est en cours, elle simule le mouvement de la souris (en utilisant xmacroplay). Cela a pour effet que votre session GNOME n'exécutera pas IDLE (et par conséquent votre PC ne sera pas suspendu).
S'il n'y a pas de musique en cours, il ne fait rien (votre session est donc capable de fonctionner en mode IDLE et ensuite de se suspendre).
Vous pouvez regarder le script vérifier la musique en tapant dans un terminal :
tail -f /path/to/noidle.log