Ruby и Ubuntu Notify-OSD - PullRequest
       22

Ruby и Ubuntu Notify-OSD

5 голосов
/ 11 сентября 2009

Я использую ruby-libnotify в приложении Ruby GTK, и это прекрасно работает для создания всплывающих окон в Ubuntu. Я на Харди, и все это прекрасно работает. Затем я заставил других попробовать приложение на Jaunty, и вместо всплывающего сообщения с новой системой Notify-OSD, как я и ожидал, уведомление превратилось в диалоговое окно.

Я изучил его и обнаружил, что Ubuntu wiki утверждает, что проблема в том, что я установил таймаут 0:

Некоторые программы указывают значение expire_timeout, равное 0, для создания уведомлений, которые никогда не закрываются сами по себе, при условии, что они могут быть закрыты вручную, как они могут в уведомлении-демоне. Поскольку это обычно делается для сообщения, которое требует ответа или подтверждения, OSD Notify представляет его как окно предупреждения, а не как пузырь.

Можно ли каким-то образом использовать libnotify, чтобы получить нормальный пузырь с тайм-аутом "никогда не истекает"? Я бы на самом деле предпочел бы, если бы я мог использовать старую систему уведомлений, даже если Notify-OSD, похоже, вообще не поддерживает постоянные пузырьки.

Недопустимо иметь для меня диалоговое окно, поскольку оно не распространяется на все окна, поэтому пользователь не сразу увидит всплывающее окно (что и является смыслом использования всплывающего окна).

Ответы [ 3 ]

3 голосов
/ 05 декабря 2009

Похоже, вы просто пытаетесь использовать Notify-OSD для чего-то, для чего он не предназначен. Пузырьки Notify-OSD носят информационный и временный характер, что означает, что в них не следует помещать критически важную информацию, поскольку они созданы для игнорирования .

В соответствии с Руководством по проектированию Ubuntu, похоже, что вы пытаетесь создать морфирующее окно оповещения , которое должно соответствовать вашим потребностям.

0 голосов
/ 23 октября 2009

Я помню, как использовал какой-то инструмент командной строки для отображения уведомлений. Вы можете просто позвонить, используя систему или ``.

0 голосов
/ 05 октября 2009

Отчасти побочный ответ, но, возможно, если API уведомлений не совсем соответствует тому, что вы хотите сделать, вам следует изучить более общую библиотеку, которая позволяет рисовать собственные пузырьки на экране. xosd приходит на ум, хотя я помню, что он довольно ограничен, но, возможно, есть и другие варианты ...

...