Есть необходимость из приложения которое слушает com порт по определённому событию прерывать запущенный screensaver.
В сесии KDE (версия 4.7.2), X Server 1.10.4, Ubuntu 11.10. Замечательно работает решение
C++ (Qt)
QDBusMessage m = QDBusMessage::createMethodCall("org.freedesktop.ScreenSaver",
"/ScreenSaver",
"org.freedesktop.ScreenSaver",
"SimulateUserActivity");
QDBusConnection::sessionBus().send(m);
И вот сегодня обнаружил, что для Gnome\OpenBox и т.д., X Server 1.7.7, Debian squeezy решение не работает т.к. сервиса org.freedesktop.ScreenSaver совсем нет. Не искал но подозреваю, что дело в версии Х.
Собственно сам вопрос. Каким образом можно прервать работающий screensaver?
Интересует решение только для Linux.
На всякий случай: "kill -9" не решение