Короче, единственный вариант отключать хранитель экрана и отключение монитора в менеджере питания xfce.
Да только так.Час прошел и сработал.
Ясно, спасибо. Ну а почему ж сам плеер то не блокирует хранитель экрана, там же есть поставить эту галочку но он то ж не реагирует на это, какой едкий и живучий этот хранитель.
ИМХО:
smplayer это приложение KDE и в альтах скомпиллирован на qt4 и на gtk ему фиолетово.
Это приложение x-window-system и на разные DE ему наплевать и они ему не указ и делает оно только одно, - щас дам по рукам! (неважно где и неважно что, сработает оно всегда, будь-то kde или что-то ещё, это один инструмент на всё про всё)
xset s off -dpms
$ grep -rHn 'xset ' ~/.config/
/home/user/.config/autostart/screensaver & powersave off.desktop:7:Exec=/usr/bin/xset s off -dpms
$ xfce4-about -V
xfce4-about 4.12.1 (Xfce 4.12)
$ rpm -q smplayer
smplayer-16.11.0-alt1.8247
См. timeout и DPMS
$ xset q|grep -i 'saver\|blank\|time\|dpms\|standby'
Screen Saver:
prefer blanking: yes allow exposures: yes
timeout: 0 cycle: 0
DPMS (Energy Star):
Standby: 600 Suspend: 0 Off: 900
DPMS is Disabled
После редактирования через xfce4-session-settings (Сеансы и запуск)
$ grep -rH 'xset ' ~/.config/
/home/user/.config/autostart/screensaver & powersave off.desktop:Exec=/usr/bin/xset s off -dpms
$ ls -l $HOME/.config/autostart/screensaver\ \&\ powersave\ off.desktop
-rw-r--r-- 1 user user 201 окт 28 03:08 /home/user/.config/autostart/screensaver & powersave off.desktop
$ cat $HOME/.config/autostart/screensaver\ \&\ powersave\ off.desktop
[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=screensaver & powersave off
Comment=
Exec=/usr/bin/xset s off -dpms
OnlyShowIn=XFCE;
StartupNotify=false
Terminal=false
Hidden=false
Общесистемное лежит тут
$ find /etc/ -name "*autostart*" 2>/dev/null
/etc/xdg/autostart
/etc/xdg/autostart/xfce4-notes-autostart.desktop
/etc/xdg/autostart/xfdashboard-autostart.desktop
/etc/xdg/autostart/xfce4-clipman-plugin-autostart.desktop
Спецификация для OnlyShowIn:
B. Registered OnlyShowIn EnvironmentsExtensions to the desktop entry formatRecognized desktop entry keysMake Applications Autostart Only In A Certain Environment (GNOME, Unity, KDE, Etc.)Обратите внимание, что OnlyShowIn это список который должен заканчиваться точкой с запятой.
Запускать только в GNOME и Unity
OnlyShowIn=GNOME;Unity;
NotShowIn - не запускать в перечисленных DE
Помните, регистр имеет значение
OnlyShowIn Value Environment
GNOME GNOME Desktop
KDE KDE Desktop
LXDE LXDE Desktop
LXQt LXQt Desktop
MATE MATÉ Desktop
Razor Razor-qt Desktop
ROX ROX Desktop
TDE Trinity Desktop
Unity Unity Shell
XFCE XFCE Desktop
EDE EDE Desktop
Cinnamon Cinnamon Desktop
Pantheon Pantheon Desktop
Old Legacy menu systems
Варианты использования xsetДопустим у вас фильмы не превышают 2 часа 15 минут.
Рассчитываем время в секундах
- время фильма
- время срабатывания скринсейвера
- время срабатывания энергосбережения монитора (dpms)
$ bc -l
60*60*2+(60*15)
8100
60*60*2+(60*20)
8400
60*60*2+(60*30)
9000
quit
Но максимальное время standby для dpms не может превышать 900 секунд
$ xset q|grep -i 'dpms\|standby'
DPMS (Energy Star):
Standby: 0 Suspend: 0 Off: 900
DPMS is Enabled
$ xset dpms 9000
illegal combination of values
standby time of 9000 is greater than off time of 900
Поэтому команда выглядит так:
включить скринсейвер через 8400 секунд (2 часа 20 минут) и выключить энергосбережение монитора, - время указывается в секундах
$ xset s 8400 -dpms
$ xset q|grep -i 'saver\|blank\|time\|dpms\|standby'
Screen Saver:
prefer blanking: yes allow exposures: yes
timeout: 8400 cycle: 0
DPMS (Energy Star):
Standby: 0 Suspend: 0 Off: 900
DPMS is Disabled
Если ваши видеоролики не превышают 10 минут, то скринсейвер можно выключить совсем, а в дежурный режим монитор можно отправить через 10 минут, - через 15 минут он выключится
$ xset s off dpms 600
$ xset q|grep -i 'saver\|blank\|time\|dpms\|standby'
Screen Saver:
prefer blanking: yes allow exposures: yes
timeout: 0 cycle: 0
DPMS (Energy Star):
Standby: 600 Suspend: 0 Off: 900
DPMS is Enabled
Но выключить монитор можно сразу
$ xset dpms force off
Как один раз и навсегда избавиться от настройки выключения скринсейвера и энергосбережения монитора в каждом DEПредположим что в менеджере сеансов и запуска вы уже создали какой-то подобный файл
$ grep -rH 'xset ' ~/.config/
/home/user/.config/autostart/screensaver & powersave off.desktop:Exec=/usr/bin/xset s off -dpms
$ ls -l $HOME/.config/autostart/screensaver\ \&\ powersave\ off.desktop
-rw-r--r-- 1 user user 201 окт 28 03:08 /home/user/.config/autostart/screensaver & powersave off.desktop
$ cat $HOME/.config/autostart/screensaver\ \&\ powersave\ off.desktop
[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=screensaver & powersave off
Comment=
Exec=/usr/bin/xset s off -dpms
OnlyShowIn=XFCE;
StartupNotify=false
Terminal=false
Hidden=false
и вам известна эта таблица DE используемых как список параметров для OnlyShowIn
https://standards.freedesktop.org/menu-spec/latest/apb.htmlOnlyShowIn Value Environment
GNOME GNOME Desktop
KDE KDE Desktop
LXDE LXDE Desktop
LXQt LXQt Desktop
MATE MATÉ Desktop
Razor Razor-qt Desktop
ROX ROX Desktop
TDE Trinity Desktop
Unity Unity Shell
XFCE XFCE Desktop
EDE EDE Desktop
Cinnamon Cinnamon Desktop
Pantheon Pantheon Desktop
Old Legacy menu systems
и эту таблицу вы поместили в файл
$ cat LF-in-strings.txt
GNOME GNOME Desktop
KDE KDE Desktop
LXDE LXDE Desktop
LXQt LXQt Desktop
MATE MATÉ Desktop
Razor Razor-qt Desktop
ROX ROX Desktop
TDE Trinity Desktop
Unity Unity Shell
XFCE XFCE Desktop
EDE EDE Desktop
Cinnamon Cinnamon Desktop
Pantheon Pantheon Desktop
Old Legacy menu systems
В desktop-файле, параметром для OnlyShowIn упоминается только XFCE
$ grep -rH 'OnlyShowIn' ~/.config/autostart/
/home/user/.config/autostart/screensaver & powersave off.desktop:OnlyShowIn=XFCE;
Чтобы отключение скринсейвера работало в любом DE, нужно добавить все эти DE списком для OnlyShowIn
Параметр для OnlyShowIn может выглядеть так
$ cat LF-in-strings.txt | grep -v 'Unity\|EDE\|Pantheon' | awk '{print $1}' | tr -s '\n' ';'|sed 's/$/\n/'
GNOME;KDE;LXDE;LXQt;MATE;Razor;ROX;TDE;XFCE;Cinnamon;Old;
Здесь grep исключает из списка десктопы Unity EDE Pantheon - в альтах их нет.
awk выбирает всё что находится в первом столбце файла LF-in-strings.txt, т.е. будущие параметры.
tr в каждой строке заменяет перевод строки на точку с запятой, создавая тем самым список.
sed в конец строки добавляет символ перевода строки
Значит имитация изменения парамеров для OnlyShowIn может выглядеть так
$ STRING=`cat LF-in-strings.txt | grep -v 'Unity\|EDE\|Pantheon' | awk '{print $1}' | tr -s '\n' ';'|sed 's/$/\n/'` \
&& sed 's/OnlyShowIn=.*/OnlyShowIn='"$STRING"'/' ~/.config/autostart/screensaver\ \&\ powersave\ off.desktop
[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=screensaver & powersave off
Comment=
Exec=/usr/bin/xset s off -dpms
OnlyShowIn=GNOME;KDE;LXDE;LXQt;MATE;Razor;ROX;TDE;XFCE;Cinnamon;Old;
StartupNotify=false
Terminal=false
Hidden=false
Выполняем эту же команду, но уже с редактированием desktop-файла
$ STRING=`cat LF-in-strings.txt | grep -v 'Unity\|EDE\|Pantheon' | awk '{print $1}' | tr -s '\n' ';'|sed 's/$/\n/'` \
&& sed -i 's/OnlyShowIn=.*/OnlyShowIn='"$STRING"'/' ~/.config/autostart/screensaver\ \&\ powersave\ off.desktop
Теперь в любом из перечисленных DE, скринсейвер и энергосбережение монитора будут отключены
$ cat ~/.config/autostart/screensaver\ \&\ powersave\ off.desktop [Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=screensaver & powersave off
Comment=
Exec=/usr/bin/xset s off -dpms
OnlyShowIn=GNOME;KDE;LXDE;LXQt;MATE;Razor;ROX;TDE;XFCE;Cinnamon;Old;
StartupNotify=false
Terminal=false
Hidden=false
Какой бы ни был запущен DE, скринсейвер и энергосбережение монитора будут отключены всегда на входе в X-сессию, важно чтобы отрабатывал автозапуск при входе в X-сессию.
Послесловие:
Я понимаю конечно что для пользователя всё это может показаться негуманным. Но ещё меньше мне нравится выкручивать один и тот же функционал для каждого DE отдельно вместо общесистемного использования.Если такой взгляд кому-то покажется интересным, перенесите пожалуйста на вики.