On Tue, 5 May 2009, Dmitry E. Oboukhov wrote:
Сам вижу, что некрасиво, но лучше выдумать не смог.
1) Явно, что это ноутбучная штучка, так что локальные X
должны быть. А что если их два?
2) Пользователь один, что опять же не факт. А как бы проверить
кто на DISPLAY=0:0 сидит?
VW> Вот для решения этой проблемы и придумали D-Bus. Чтобы не разбираться от
VW> какого юзера, да есть ли у него X-ы да и вообще. Чтобы из обработчика
VW> события не глядя
VW> слать сообщения в system bus. А кому интересно - их слушает и
VW> предпринимает действия, требующие взаимодействия с пользователем.
интересно.
а права доступа на сообщения оно (dbus) умеет?
а стандартизация сообщений уже есть?
то есть где почитать про то что надо слушать чтобы поймать скажем
закрытие ноута? и будет ли это решение работать в любой системе с
dbus?
В данном случае dbus излишен. Уже имеется /var/run/acpid.socket.
Надо взять, например, acpi_listen.c (пакет acpid), добавить филтер
для нужных событий и прикрутить всё это к xbattbar :).
Правда, я что-то не очень понимаю насколько одинаков вид
этих самых событий на разных машинах, но наверное более-менее
стандартен.
Ю.