Я использую ruby-libnotify в приложении Ruby GTK, и это прекрасно работает для создания всплывающих окон в Ubuntu. Я на Харди, и все это прекрасно работает. Затем я заставил других попробовать приложение на Jaunty, и вместо всплывающего сообщения с новой системой Notify-OSD, как я и ожидал, уведомление превратилось в диалоговое окно.
Я изучил его и обнаружил, что Ubuntu wiki утверждает, что проблема в том, что я установил таймаут 0:
Некоторые программы указывают значение expire_timeout, равное 0, для создания уведомлений, которые никогда не закрываются сами по себе, при условии, что они могут быть закрыты вручную, как они могут в уведомлении-демоне. Поскольку это обычно делается для сообщения, которое требует ответа или подтверждения, OSD Notify представляет его как окно предупреждения, а не как пузырь.
Можно ли каким-то образом использовать libnotify, чтобы получить нормальный пузырь с тайм-аутом "никогда не истекает"? Я бы на самом деле предпочел бы, если бы я мог использовать старую систему уведомлений, даже если Notify-OSD, похоже, вообще не поддерживает постоянные пузырьки.
Недопустимо иметь для меня диалоговое окно, поскольку оно не распространяется на все окна, поэтому пользователь не сразу увидит всплывающее окно (что и является смыслом использования всплывающего окна).