17 Oct 2011

rvb: (Default)
Решал тут локальную задачку - выводить уведомления от висящего в фоне процесса на дисплей всем висящим в данный момент на машине пользователям через libnotify (если кого частности интересуют - уведомления от NUTа о работе на UPS, чтобы даже при работе по удаленке, когда не видно, что творится с лампочками, отключение системы из-за пропадания питания не было бы слишком внезапным). Оказалось не так-то просто, как на первый взгляд кажется - мало того, что пользователь может послать сообщение через dBus только самому себе, там надо еще знать, в какой именно экземпляр этого самого dBus кукарекнуть, и на какой дисплей это сообщение выводить.

Вот ниже то, что получилось. Звать через sudo (иначе пощупать окружение чужих процессов не получится). Сделано под ubuntu 11.04 c GDM, под другие системы, соответственно, надо будет допилить в части разбора параметров менеджера окон.

Заранее извиняюсь за кривизну кода, делалось по принципу - "чтобы побыстрее заработало".
Код дальше... )

P.S. Исправленая версия пользуется тем фактом, что dbus-launch всегда есть, и всегда один на сессию. Наутилусов же может быть пара - от юзера и от рута.

Profile

rvb: (Default)
rvb

January 2013

M T W T F S S
 123456
78910111213
14151617181920
212223 24252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated 12 Aug 2025 23:03
Powered by Dreamwidth Studios