Я хотел бы записать приложение, которое получает уведомление каждый раз, когда обменивающееся сообщениями меню активируется (синий конверт освещает), и каждый раз, когда это деактивируется (синий конверт возвращается к своему цвету по умолчанию).
Там какой-либо путь состоит в том, чтобы получить уведомление для этого? Я действительно не обеспокоен языком программирования в этом случае - хотя C, Python или PHP были бы предпочтены.
Интересный вопрос. Нет никакого официального API для обнаружения, если обменивающееся сообщениями меню изменилось, это - состояние. Можно сделать это путем рассмотрения интерфейса DBus сервиса сообщений индикатора. Сценарий оболочки путь похож на это:
$ gdbus call --session --dest com.canonical.indicator.messages --object-path /com/canonical/indicator/messages/service --method com.canonical.indicator.messages.service.AttentionRequested
Существует также сигнал"AttentionChanged
". Можно отследить это для определения состояния, поскольку оно обновляет.
Кроме того, если Вы интересуетесь отдельными объектами в обменивающемся сообщениями меню, вся их информация экспортируется с помощью libindicate. Возможно иметь другого libindicate слушателя на DBus, который получает всю информацию и агрегировал ее по-другому.