- PVSM.RU - https://www.pvsm.ru -
С выходом MacOSX 10.8 общественности был представлен Notification Center, он же «Центр Уведомлений». Как только вам приходит новая почта или, к примеру, заканчивается закачка в Safari, то вы видите в правом верхнем углу всплывающее окошко с уведомлением, об этом сообщающее. Так же по свайпу двумя пальцами влево (или по хоткею) можно обнажить панель нотификаций, почти идентичную онной в iOS.
Все было бы хорошо, да только есть одно но: еще с 2004го года все приложения используют для целей уведомления пользователя опенсурсный Growl и не спешат переходить на новую систему. В частности Skype, Adium, Transmission и многие многие другие приложения повседневного пользования.
Hiss [1] — одно из самых первых решений, появившихся в сети. И последнее. Hiss ловит нотификации вместо гроула и отправляет их от его имени в Notification Center, в результате чего получается не самая приятная картина:
Как видно на скриншоте, результат не похож на ожидаемый. Так же, нет индивидуальных настроек для приложений. Вариант рабочий, но не удобный.
Этим летом я решил исправить положение и, не найдя каких-бы то ни было решений проблемы в интернете, кроме обещаний выпустить growl2, приступил к написанию CentralNotifier.
Central Notifier — это маленькое приложение, которое инжектируется с помощью SIMBL [2] во все, что движется в системе (подобно maximizer [3], добавляющему lion's fullscreen во все приложения, в которые возможно). Если приложение поддерживает growl, то после инжектирования все нотификации, предназначенные для growl, будут отправляться в Notification Center. В итоге имеем вот такую картину:
А так же настройки для приложений:
Работать оно работает, но находится на ранней стадии разработки. У меня больше нет времени заниматься этим проектом, да и с текущими багами я прижился. Уже месяц работает без нареканий, решил поделиться с общественностью и буду очень рад, если кто-то возьмет проект под свое крыло.
1) Устанавливаем SIMBL [2]
2) Скачиваем и распаковываем cl.ly/2l0O2w1m3v3H [4]
3) CentralNotifier.bundle -> ~/Library/Application Support/SIMBL/Plugins/
4) SIMBL.osax -> /Library/ScriptingAdditions *
5) DoubleClick CentralNotifier-PrefPane.prefPane
6) Перезагрузка без галочки о сохранении состояния приложений
* — это измененный инжектор (что нарушает просьбу автора о переименовывании его детища при любых изменениях). Если вы хотите инжектироваться в приложения, не имеющие иконки в доке — вам он нужен. Нет — все работает и с обычным SIMBL. По любым проблемам с измененным инжектором просьба не обращаться к автору SIMBL
Исходники лежат на GitHub [5]. Делайте с ними что хотите, с сохранением оригинального авторства за мной.
1) После перезагрузки иногда приходится перезапускать все приложения, чтобы произошло инжектирование. Происходит это потому, что инжектор стартует позже самих приложений.
2) Чтобы применить настройки к нотификациям приложений, нужно их изменить в prefpane, выйти из нее и затем перезапустить само приложение.
3) Больше за месяц косяков не замечено.
Мое личное мнение: Или они сделают, как Hiss, или их не пустят в AppStore. Чтобы постить нотификации от лица другого приложения — надо либо инжектироваться в него (об appstore сразу можно забыть), либо делать магическое кунфу (шанс с которым пройти в тот-же appstore очень мал). Я думаю, что было бы хорошо продолжить разработку CentralGrowler, тк больше вариантов перенаправления нотификаций я не вижу.
Надеюсь, что мои наработки комунибудь да пригодятся.
Автор: aspcartman
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/mac-os-x/15380
Ссылки в тексте:
[1] Hiss: http://collect3.com.au/hiss/
[2] SIMBL: http://www.culater.net/software/SIMBL/SIMBL.php
[3] maximizer: http://chpwn.com/apps/maximizer.html
[4] cl.ly/2l0O2w1m3v3H: http://cl.ly/2l0O2w1m3v3H
[5] GitHub: https://github.com/aspcartman/CentralNotifier
Нажмите здесь для печати.