Для тех, кто использует скринсейвер, отличный от gnome-screensaver (который является заставкой по умолчанию в Ubuntu, начиная с версии 11.10), этот ответ может быть полезен.
Лично я не менял gnome-screensaver для чего-то еще, и я не знаю, по каким причинам Caffeine не работает для меня каким-либо образом (может быть, устарел).
Как говорится, начиная с других сценариев bash ( этот ответ , это и это), мне удалось создать новый скрипт gnome_screensaver_off.sh, который отлично работает для того, что я намеревался, когда YouTube использует Flash Player для рендеринга видео.
Откройте этот и запустите следующие команды, за которыми следуют инструкции:
mkdir -p bin - эта команда будет создайте каталог bin в папке home, если у вас его еще нет. gedit ~/bin/gnome_screensaver_off.sh - это создаст новый файл gnome_screensaver_off.sh в gedit. Скопируйте и вставьте следующий скрипт:#!/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
mkdir -p bin - эта команда сделает каталог bin в вашей папке home, если у вас его еще нет. Вернитесь в терминал и запустите: chmod +x gnome_screensaver_off.sh - чтобы предоставить доступ для выполнения сценария. gedit ~/bin/gnome_screensaver_off.sh - это создаст новый файл gnome_screensaver_off.sh в gedit. Если вы предпочитаете, вы можете установить этот сценарий для запуска при входе в систему, выполнив следующее:
Поиск в Dash для приложений для запуска, откройте его и нажмите «Добавить». Под названием «Монитор YouTube» или что-то, что вы узнаете. Под командой введите «/home/$USER/bin/gnome_screensaver_off.sh» (измените $ USER с вашим именем пользователя). Под комментарием (если хотите) введите краткое описание (например, «Стоп-экран отключается, когда Flash-плеер запущен в браузере»).Вопрос остается открытым в этом смысле ...
Спасибо за предложения, предлагаемые: fossfreedom, Meer Borg, njallam, desgua и др.