>Если тебе нужно определять неактивность пользователя используй расширение XScreenSaver.
>man 3 Xss. Вам так-же спасибо.
Вообщем-то все началось с того, что нужно было отследить неактивность пользователя...
В начале, я просто хотел, чтобы скринсайвер в линукс проигрывал флеш (*.swf) видео (*.mpg и *.avi) и скринсайверы из винды (*.scr и/или *.exe - что по сути одно и то-же). Хотя если бы хоть что-то из этого удалось, то все остальное можно было бы перекодировать в соответствующий формат и пользоваться.
Мне не удалось добиться этого.
В основном, я экспериментировал с xscreensaver'ом, на его странице вот в этом разделе FAQ: http://www.jwz.org/xscreensaver/faq.html#mpeg, написано что это возможно и как именно это сделать, но эти способы не работают:
1. mpeg2dec_onroot - воспроизводит изображение серого экрана вместо ролика
2. gflashplayer - отсутствует по ссылке которая там приведена - ссылка позволяет скачатть программу flashplayer (НЕ "g"flashplayer) с сайта adobe. Программа flashplayer невоспринимает аргументы командной строки вообще, хотя flash ролики воспроизводит.
3. Я попробовал видеоплейер xine, который прекрасно проигрываетна корневом экране видеоролики (xine -R 'video.avi'), при запуске из консоли (кстати таким образом можно легко поставить на рабочий стол любые видео обои, например любимый фильм или клип), но при запуске той же комманды в xscreensaver'е - xine включается и тут же выключается, или проигрывает черный экран.
Вообщем я решил создать приложение которое моглобы осуществить это - и надо было отследить активность пользователя - я это сделал через файлы /dev/input/eventX, но когда обнаружил, что в новой версии Fedora - Fedora9 мышь таким образом не отслеживается - пришлось искать более совершенный метод - вдруг потом и клавиатура перестанет отслеживаться.
Я попробовал отследить события с помощью функций GTK, но надо указать указатель на widget в котором отслеживаются события - а что написать чтобы события отслеживались глобально а не в конкретном виджете неизвестно.
----
Мысли такие:
- Компьютер бесполезен, если не взаимодействеут с пользователем.
- Взаимодействие осуществляется через устройства ввода/вывода (с выводом проблем нет)
- Чтобы успешно писать программы надо знать как отследить события устройтсв ввода в системе в целом.
Более селкая проблема: как заставить линук проигрывать видео ролики во время бездейстивя пользователя.
Я занимаюсь этим в свободное от работы время уже более 2-х месяцев. Если у кого есть какие-то мысли пожалуйсто помогите мне.
---
Спасибо всем кто об этом хотябы раз задумается.