Авг 06 2008

Убираем лишние пункты меню в del.icio.us (firefox add-on)

Категория: Firefox, Lifehack, Юзабилитиgugglegum @ 15:06

Я использую этот сервис сетевых закладок уже более 2-х лет и для удобства использую устанавливаемое в браузер расширение Firefox, позволяющее добавлять закладки чуть быстрее и удобнее. Но, чем дальше, тем меньше оно мне нравится. В первую очередь своей назойливостью. Мне нравятся программы, которые делают то, для чего предназначены и не делают ничего лишнего. По началу так и было — старое расширение добавляло всего 2 кнопки (одну из которых можно было и убрать). Но с переходом на Firefox 3.0 про данное расширение можно забыть и пользоваться новым расширением, которое совсем не так скромно.

Новое расширение в обычном режиме всячески стремится заменить собой обычные закладки браузера. Мне же это совсем не нужно, у меня разные области применения для них. В Firefox я храню закладки, к которым обращаюсь достаточно регулярно (посещаемые сайты, форумы, темы/посты с моими комментариями в ожидании ответов, базовая документация, собственные проекты, часто востребованные сервисы и т.п.), а в del.icio.us я храню то, что хотел бы сохранить на будущее на случай, если мне это вдруг когда-нибудь понадобится. Система организации часто используемых ссылок на основе тегов, к сожалению, неудобна, т.к. не позволяет, например, выносить часто используемые ссылки на верхний уровень, а редко используемые — в самый низ иерархии разделов, плюс не дает сортировать их вручную. А когда тегов больше сотни, искать нужный тег весьма неудобно.

delicious_normal.pngКроме этого, это расширение создает дополнительное корневое меню Delicious между меню Журнал и Закладки и переопределяет некоторые стандартные горячие клавиши Firefox. Так, например, Ctrl-B открывает уже не панель закладок Firefox, а панель закладок Delicious. Добавляет пункт опций в меню Инструменты; добавляет в меню Закладки в конце пункт “Hide This Menu”, который скрывает меню Закладки так, что их вернуть можно только через опции расширения; добавляет в контекстное меню таба пункт “Bookmark This Tab In Delicious…” и черт знает что еще, большая часть из которого не отключается через обычные настройки.

К счастью, в новом расширении предусмотрен специальный режим “Classic Mode” для пользователей вроде меня, которым не нужны все эти избыточные навороты. И этот режим меня в принципе долгое время устраивал, но чем дальше — тем все хуже и хуже. В классическом режиме не перебиндиваются горячие клавиши, не добавляется корневое меню Del.icio.us, не добавляется пункт “Hide This Menu”, но сохраняется пункт “Bookmark This Tab In Delicious…” и добавляется несколько пунктов сверху в меню Закладки… Такое ощущение, будто разработчики намеренно стремятся сделать использование обычных закладок максимально неудобным, чтобы пользователь от них отказывался и пользовался только их закладками. Если в версии 2.0.64 было еще ничего, то в версии 2.0.72 добавилось еще несколько ужасно неудобных пунктов. Судите сами:

delicious_classic.png

На этот раз мое терпение лопнуло и я решил расковырять этот злосчастный экстеншин, чтобы убрать из него все эти лишние меню. Я пошел в каталог расширения в профайле файрфокса (для пользователей windows это c:\documents and settings\ваш_логин\Application Data\Mozilla\Firefox\Profiles\xxxxxxxx.имя_профиля\extensions\{2fa4ed95-0317-4c6a-a74c-5f3e3912c1f9}). Там сделал поиск по подстроке и путем несложного реверсивного инженеринга нашел место, где эти пункты меню создаются и просто закомментировал его. Сейчас я расскажу как Вы можете сделать то же самое.

Убираем пункты в меню Закладки

Итак, чтобы избавиться от лишних пунктов в меню Закладки, нам понадобится распаковать файл chrome/deliciousBookmarks.jar во временный каталог (это обычный ZIP-архив), открыть в нем файл content/ybookmarksOverlay.js, найти функцию onBookmarksMenuPopupShowing и закомментировать в ней строчку:

   	  	this.addYbItemsToBookmarksMenu(popup);

Убираем горячие клавиши

В классическом режиме Delicious зачем-то биндит на себя некоторые горячие клавиши, хотя действия никакого на них не выполняет. Это может вступить в конфликт с другими расширениями, использующими те же комбинации клавиш (тем более, что в Delicious комбинации не настраиваются). Таким образом, эти комбинации оказывались своего рода черными пятнами на пространстве горячих клавиш Firefox. Например, в моем случае был конфликт с расширением WebDeveloper — в нем не работала комбинация Ctrl-Shift-S и некоторые другие. Да, можно было бы перебиндить нужные действия на другие кнопки, но зачем? Тем более я уже так к ним привык.

Итак, чтобы убрать биндинг горячих клавиш в Delicious идем во все тот же content/ybookmarksOverlay.js и в функции Load комментируем строчку

	    	ybUserInterface.tweakKeyBindings(false);

Собираем JAR-архив обратно

После всех наших изменений в коде, временный каталог нужно снова заархивировать в ZIP-файл, сохранив исходную структуру директорий, с тем же именем и расширением .jar, и поместить на место исходного, предварительно закрыв все окна Firefox и не забыв сделать резервную копию на всякий случай.

Для удобства посетителей, выкладываю ссылку на получившийся у меня JAR-файл. При обновлении все изменения в исходном коде перезапишутся и патчить придется заново, либо зайти на этот сайт — может быть я уже выложил отредактированную обновленную версию сюда.

deliciousBookmarks.jar для версии 2.0.104

А также для старых версий: 2.0.95, 2.0.72

Убираем “Bookmark This Tab In Delicious…”

От пункта “Bookmark This Tab In Delicious…” в контекстном меню таба можно избавиться не прибегая к модификации кода, используя лишь скрытые настройки из about:config. Установите опцию extensions.ybookmarks@yahoo.contextmenu.hide в значение true и этот пункт исчезнет из меню сам.

Один отзыв на “Убираем лишние пункты меню в del.icio.us (firefox add-on)”

  1. maxd says:

    Полностью согласен с мнением оратора насчет “продвижения” помянутого экстеншна))

    ставлю пятерку!

Напишите что Вы об этом думаете


*


*


rel=nofollow включен, спам не поднимет Page Rank Вашего сайта



Anti-Spam Image
Введите этот код, чтобы подтвердить, что вы человек
*

* — Обязательно для заполнения

Перейти на главную страницу