Управление скринсейвером в KDE4 через Dbus
В связи с тем, что у я использую тв-тюнер и управляю им с пульта, требуется: выключать скринсейвер перед запуском и включать (при необходимости) после выключения программы просмотра tv. В KDE3.5 я делал это элементарно, через DCOP:
перед запуском:
SSAVER="`dcop kdesktop KScreensaverIface isEnabled`" dcop kdesktop KScreensaverIface quit
После выключения tv:
dcop kdesktop KScreensaverIface enable $SSAVER dcop kdesktop KScreensaverIface save
После перехода на KDE4 скрипт, само собой, пришлось корректировать. Но найденное мною решение, похоже, что не совсем правильное... Либо это баг...
Следующая конструкция (запускает с-сейвер и через три секунды останавливает), на первый взгляд, вроде бы, работает:
dbus-send --type=method_call \ --dest=org.kde.screensaver /ScreenSaver \ org.freedesktop.ScreenSaver.SetActive boolean:true ; \ sleep 3 ; \ dbus-send --type=method_call \ --dest=org.kde.screensaver /ScreenSaver \ org.freedesktop.ScreenSaver.SetActive boolean:false
...только, после остановки, скринсейвер прерывается, но его процесс *.kss (в моем случае kclock.kss -root) не завершается и продолжает работать. И повторное выполнение этой конструкции приведет к появлению очередного процесса скринсевера, хотя вывод и прерывается.
Как в KDE4, через DBus остановить и запустить скринсейвер правильно?
- Для комментирования войдите или зарегистрируйтесь
а у "программы
а у "программы просмотра TV" случаем нет галочки "подавлять с-сейвер" как у любого нормального плеера?
Может быть и есть, но я не нашёл.
Может быть и есть, но я не нашёл. Использую tvtime. Но вопрос принципиальный, так как с пульта, не только tvtime запускается.
Оффтоп
Какой тюнер используете? Спасибо
PxelView
Какой-то PxelView, на Bt878, но какой конкретно, уже не помню.
lspci -nn -Q | grep 878
00:0a.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)
00:0a.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)