Вопрос: Надежные диалоговые окна оповещений из оболочки


Я хотел бы, чтобы сообщение появилось в ответ на различные системные события, в основном для того, чтобы иметь возможность устанавливать напоминания для себя из сеанса оболочки. Есть несколько способов сделать это; zenity кажется, самый полированный. Тем не менее, я нашел по крайней мере две проблемы с зенитом:

  1. Сообщения не отображаются на всех рабочих пространствах. Я попытался использовать опцию gtk --screen для управления этим, но они просто появляются на текущем рабочем пространстве независимо. Поэтому, если я переключаю рабочие области по мере появления сообщения, я его не увижу.

  2. Сообщения не отображаются над всеми другими окнами. В частности, если я использую guake, новый zenity появится сообщение ниже guake окно, и я не смогу его увидеть.

Я попробовал несколько других приложений некоторое время назад. И то и другое gmessage а также xmessage выставлен проблема 1; gmessage также выставлен проблема 2, Я обнаружил, что kalarm, который может быть сценарием из командной строки, работал приемлемо, но я стараюсь избегать запуска KDE-стека, если это возможно, и предпочел бы что-то легкое с zenityуниверсальность.

Похоже, что можно было бы решить, что эти проблемы можно решить, установив WM_CLASS, но я немного над головой. Также возможно внести изменения в окно после запуска со сценарием, но опять же я не уверен, где искать ресурсы на этом.

Обновить

Как предложил @geirha, я изучил использование notify-send (через пакет libnotify-Бен, который, как представляется, является клиентом извещать-Osd). В этой структуре существует множество проблем, для которых я подал заявку   мало  ошибка  отчеты, Я надеюсь, что devilspie может обеспечить обходные пути для некоторых или всех этих проблем или что есть еще одна система уведомлений, которая работает более надежно.


6
2018-03-02 20:41


Источник




Ответы:


Может быть, вы хотите notify-send?

В противном случае devilspie, который позволяет вам говорить такие вещи, как «все окна с этим именем (или этого класса или с этой ролью) должны быть видны на всех рабочих пространствах».


3
2018-03-02 22:18



Есть ли способ получать уведомления, отправленные notify-send для отображения до подтверждения? В соответствии с спецификация, придание срочности критическим должно сделать это, но notify-osd, похоже, не соблюдает эти правила. Когда я отправляю notify-send -u critical Testing "This is a test of the emergency broadcast system", он отображается в течение 10 секунд и затем исчезает. - intuited
Ах, хорошо ... похоже, --expire-time к нулю это сделает. В первый раз, когда я попробовал, я думал, что на самом деле он отображался в течение 0 секунд, потому что я этого не видел. Он был скрыт под гвоздем. Уведомления со временем истечения срока действия отображаются выше guake (с использованием совершенно другой кожи). - intuited