Страница 1 из 1

Завершение работы компьютера поcле воспроизведения. - Готовое решение.

Добавлено: 20 ноя 2015, 13:50
Xakep
Привык я на винде на сон грядущий включать MPC с функцией - Завершение работы компьютера после воспроизведения, и засыпать под любимый сериал. :)
И с переходом на linux мне очень не хватало такой возможности.
В сети я нашел информацию по этому поводу и начал адаптировать ее для себя, а точнее для ROSA Fresh R6 2014.1.

В общем будем создавать в контекстном меню Dolphin новый пункт "Вык. по окончанию проигрывания", который будет запускать Rosa Media Player или VLC, а по окончанию проигрывания выключать компьютер.
картинка1.jpeg
Для начала нам понадобится установить пакет zenity для возможности отображения диалоговых окон из sh скриптов. У меня он оказался предустановлен, но, на всякий случай даем в терминале команду.

Код: Выделить всё

sudo urpmi zenity
Дальше можно просто скачать, распаковать и запустить один из скриптов, которые автоматически установят и настроят новый пункт меню в Dolphin.
install_poweroffendplay_ROMP.sh.zip
(1.21 КБ) 312 скачиваний

- Для настройки пункта меню которое запускает Rosa Media Player
install_poweroffendplay_VLC.sh.zip
(1.2 КБ) 317 скачиваний
- Для настройки пункта меню которое запускает VLC

А теперь чуть поподробнее что делает установочный скрипт.
В процессе установки создается два файла /home/user/.kde4/share/kde4/services/ServiceMenus/poweroffendplay.desktop и /home/user/.local/poweroffendplay

poweroffendplay.desktop

Код: Выделить всё

[Desktop Action poweroffend]
Exec=/home/user/.local/poweroffendplay %F
Icon=video
Name=Вык. по окончанию проигрывания

[Desktop Entry]
Type=Service
Actions=poweroffend;
Encoding=UTF-8
Icon=video
Name=Вык. по окончанию проигрывания
Name[en_US]=Power off end play
ServiceTypes=KonqPopupMenu/Plugin,audio/*,video/*
Собственно этот файл и добавляет новый пункт меню в Dolphin который запускает скрипт poweroffendplay

poweroffendplay

Код: Выделить всё

#!/bin/bash

COUNT=10

rosa-media-player -close-at-end "$1"
(
while [ "$COUNT?" != 110 ]
 do
   echo $COUNT
   COUNT=`expr $COUNT + 10`
   sleep 1
 done
) |
zenity --auto-close --progress --title "Завершение работы после просмотра" --text "Воспроизведение окончено.Питание будет отключено..."
 if [ $? = 0 ] ;
  then
  systemctl poweroff
 fi
Этот скрипт запускает соответствующий медиа плеер, ждет его завершения и выключает компьютер.
Ключевыми здесь являются две команды

Код: Выделить всё

rosa-media-player -close-at-end "$1"
#vlc --play-and-exit "$1" - Если используется VLC
systemctl poweroff
Все остальное является мишурой выводящей диалоговое окно на 10сек. перед выключением компьютера.

В общем, пользуемся, а при необходимости дорабатываем скрипт сами...

Re: Завершение работы компьютера поcле воспроизведения. - Готовое решение.

Добавлено: 20 ноя 2015, 14:09
vlad
Лицензируйте надлежащим образом.

Re: Завершение работы компьютера поcле воспроизведения. - Готовое решение.

Добавлено: 20 ноя 2015, 14:13
Xakep
В смысле? o_O

Re: Завершение работы компьютера поcле воспроизведения. - Готовое решение.

Добавлено: 20 ноя 2015, 21:28
VictorR2007
Ещё можно это делать через проигрыватель.
Приложу фотки с этими функциями в проигрывателях bomi, xt7-player и smplayer.
З.Ы.
Ещё с этим хорошо справляется kshutdown.

Re: Завершение работы компьютера поcле воспроизведения. - Готовое решение.

Добавлено: 20 ноя 2015, 22:12
vlad
Xakep писал(а):В смысле? o_O
Напишите под какой лицензией разработка, приложите ее текст.

Re: Завершение работы компьютера поcле воспроизведения. - Готовое решение.

Добавлено: 20 ноя 2015, 22:54
Xakep
vlad писал(а):Напишите под какой лицензией разработка, приложите ее текст.
Лицензия WOTM - Who's On That Much.
А текст лицензии в дословном переводе довольна короткий - "Вспомни как сам учился"...
VictorR2007 писал(а):Ещё можно это делать через проигрыватель.
Спасибо. Будим знать. :)

Re: Завершение работы компьютера поcле воспроизведения. - Готовое решение.

Добавлено: 20 ноя 2015, 23:33
notauser
Exec=/home/andrey/.local/poweroffendplay %F :)
/home/andrey/ - это потому, что ~ не работает и надо костылить?
Да и перед cat <<EOF > "$HOME/$SCRIPTPATH$SCRIPTFILENAME" неплохо бы проверить наличие $HOME/$SCRIPTPATH$SCRIPTFILENAME

Re: Завершение работы компьютера поcле воспроизведения. - Готовое решение.

Добавлено: 20 ноя 2015, 23:52
Xakep
C Exec это да, упустил момент. Исправим. :)
По второму замечанию. В принципе необходимости нет, если даже по какой то случайности и окажется по указанному пути файл poweroffendplay, то он просто перепишется по новой.

Re: Завершение работы компьютера поcле воспроизведения. - Готовое решение.

Добавлено: 20 ноя 2015, 23:58
notauser
Да, но это мой poweroffendplay перепишется на ваш poweroffendplay. :)

Re: Завершение работы компьютера поcле воспроизведения. - Готовое решение.

Добавлено: 21 ноя 2015, 17:01
Xakep
Касяк с Exec исправил, скрипты перезалил.
Замечания notauser по поводу проверки в скрипте, считаю правильными, но, нагружать скрипт ненужными проверками считаю ненужным. Чем проще скрипт, тем легче его понять, особенно начинающим.
Кто посчитает нужным внести в скрипт - проверку от дурака, динамические имена, бекап существующих одноименных файлов и т.п. Будет только приветствоваться, и его тВаренья будут сразу по возможности поднимется в шапку темы. :)