После обновления убунты до версии 9.10, долго не мог прийти в себя, после того как увидел, что сотворили с всплывающими сообщениями. Для тех, кто не в курсе объясняю, в предыдущей версии убунты 9.04 - эти сообщения отображались в правом верхнем углу, сразу под панелью, один за одним по мере вывода, будь то системные сообщения или пользовательские. В новой же версии, по-умолчанию системные сообщения так и выводятся сверху, а вот пользовательские выводятся на пикселей 60 ниже. Как объясняют разработчики, это сделано для удобства. Только я не могу понять - удобства для кого??
В общем, еще раз вспомнив "добрым" словом разработчиков за их удобства, начал искать где это нововведение можно отключить. Как оказалось, никакой такой опции в конфигах не предусмотрено (и я не скажу что я плохо искал, перерыл кучу инфы - опций нет). Зато удалось выяснить, что система вывода сообщений называется slot-allocation и теперь подразделяется на два типа 'fixed' и 'dynamic'. В 9.04 использовалась версия 'dynamic', а в 9.10 используется версия 'fixed'. В общем посмотрел я на все это дело и за неимением нормальных настроек, полез в исходники искать правды. И нашел :)
Исправляем досадное недоразумение
1. Устанавливаем все нужные зависимости
$sudo apt-get build-dep notify-osd
2. Скачиваем исходники системы сообщений notify-osd:
$apt-get source notify-osd
3. Заходим в папку 'notify-osd-0.9.24/src' (она создается при автоматической распаковке в предыдущем шаге)
$cd notify-osd-0.9.24/src/
4. Открываем для редактирования файл defaults.c
$gedit defaults.c
4.1. Ищем 758 строку и заменяем строку self->slot_allocation = SLOT_ALLOCATION_FIXED;
на self->slot_allocation = SLOT_ALLOCATION_DYNAMIC;
и сохраняем изменения. 5. Переходим каталогом выше
$cd ..
6. Запускаем сборку пакета
$sudo dpkg-buildpackage
7. Еще раз переходим каталогом выше
$cd ..
8. И устанавливаем собранный deb-пакет
$sudo dpkg -i notify-osd*.deb
9. Вот и все :)
Собранные пакеты с внесенными изменениями: Версия для x86(i386) архитектуры Версия для x86_64(amd64) архитектуры. Также в приведенных выше, собранных пакетах, уменьшено время отображения попапа с 10 секунд до 5, а то уж очень долго они висят.
Дополнительные возможности notify-osd
1) gravity - параметр переключает место отображения сообщений на экране. 1. Создание параметра:
$gconftool-2 -s /apps/notify-osd/gravity --type=int 1
где значение 1 - сверху-справа(NorthEast), а 2 - посредине-справа(East) 2. Удаление параметра (так на всякий случай):
$gconftool-2 -u /apps/notify-osd/gravity
2) multihead_mode - параметр вкл/откл отображение сообщений на том мониторе, который в данный момент активен (касается, только владельцев нескольких мониторов). 1. Создание параметра:
$gconftool-2 -s /apps/notify-osd/multihead_mode --type=string focus-follow
где значение focus-follow - отображение на активном мониторе, а любое другое значение - отображение всегда на основном мониторе. 2. Удаление параметра (так на всякий случай):
$gconftool-2 -u /apps/notify-osd/multihead_mode
После создания параметров описанных выше, ими можно будет управлять через 'Редактор конфигурации' (gconf-editor)
Источник: http://leolik.blogspot.com/2009/11/notify-osd-ubuntu-910.html
|