Per coloro che usano uno screensaver diverso da gnome-screensaver (che è lo screensaver predefinito in Ubuntu a partire dalla versione 11.10) questa risposta può essere utile.
Personalmente, non ho cambiato gnome-screensaver per qualcos'altro e, non so per quali motivi, la caffeina non funziona in alcun modo per me (forse è obsoleta).
Detto questo, a partire dagli script bash di altri ( questo , questo e questo ), sono riuscito a creare un nuovo script, gnome_screensaver_off.sh
che funziona perfettamente per quello che intendevo quando YouTube utilizza Flash Player per il rendering dei video.
Disabilita gnome-screensaver mentre YouTube utilizza Flash Player
Apri un terminale ed esegui i comandi successivi seguiti dalle istruzioni:
mkdir -p bin
- questo comando creerà una bin
directory nella tua home
cartella se non l'hai già.
gedit ~/bin/gnome_screensaver_off.sh
-questo creerà il nuovo file gnome_screensaver_off.sh
in gedit.
- Copia e incolla il prossimo script:
#!/bin/bash
# Getting the previous configuration
back=$(gsettings get org.gnome.settings-daemon.plugins.power sleep-display-ac)
screensaver_is_off=0
delay=$[$back - 10]
# Defining the restore function
function restore {
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac $back
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery $back
gsettings set org.gnome.desktop.session idle-delay $back
bmin=$[$back / 60]
#notify-send "Screen sleep time restored to $bmin minutes."
notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "Screen sleep time restored to $bmin minutes."
}
# Defining the disable_screensaver function
function disable_screensaver {
# Making sure the user don't mess up...
trap 'restore && exit 0' INT HUP
# Disabling sleep time
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac 0
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery 0
gsettings set org.gnome.desktop.session idle-delay 0
notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "Screen sleep time turned off."
}
while true; do
if [ "$delay" -le "50" ]; then
sleep 50
else
sleep $delay
fi
flash_on=0
#Check if Chrome, Chromium or Firefox is open with a flash video running on it
if pgrep -lfc ".*((c|C)hrome|chromium|firefox|).*flashp.*" > /dev/null ; then
flash_on=1
else
flash_on=0
fi
if [ "$flash_on" -eq "1" ] && [ "$back" -ne "0" ] && [ "$screensaver_is_off" -eq "0" ]; then
disable_screensaver
screensaver_is_off=1
elif [ "$flash_on" -eq "0" ] && [ "$screensaver_is_off" -eq "1" ]; then
restore
screensaver_is_off=0
fi
done
exit 0
- Salva il file e chiudilo.
- Torna nel terminale ed esegui:
chmod +x gnome_screensaver_off.sh
- per concedere l'accesso in esecuzione per lo script.
- Per eseguire il tuo nuovo script, esegui
~/bin/gnome_screensaver_off.sh
.
Se si preferisce, è possibile impostare l'esecuzione di questo script all'accesso procedendo come segue:
- Cerca nel Dash per applicazioni di avvio , aprirlo e fare clic su Aggiungi .
- Sotto il nome digita "YouTube Monitor" o qualcosa che riconoscerai.
- Sotto il comando digitare "/home/$USER/bin/gnome_screensaver_off.sh" (cambia $ USER con il tuo nome utente).
- Sotto commento (se lo desideri), digita una breve descrizione (ad es. "Ferma lo schermo quando Flash Player è in esecuzione nel browser").
Disabilita gnome-screensaver mentre YouTube utilizza il lettore HTML5
La domanda rimane aperta in questo senso ...
Grazie per i suggerimenti offerti da: fossfreedom , Meer Borg , njallam , desgua e altri.