Plugins
From Tkabber Wiki
Contents |
Плагинология
В этом разделе рассказано о внешних плагинах Ткаббера.
Если вы — новичок, прочитайте как минимум первые два раздела.
Как подключить плагин
При старте Ткаббер ищет плагины в двух местах и в указанном порядке:
- Каталог, имя которого находится в переменной окружения TKABBER_SITE_PLUGINS
- Каталог ~/.tkabber/plugins
Любой из этих каталогов (в том числе оба) могут отсутствовать. Первый из них, как и следует из названия соответствующей переменной окружения, предназначен для использования плагинов всеми пользователями системы, в то время как второй — конкретным пользователем (то есть лично вами).
Физически плагин Ткаббера представляет собой каталог с файлами, который следует скопировать в любой из указанных выше директориев (но только в один из них). Заметьте, что копировать надо каталог целиком, а не файлы из него; кроме того, каталог плагина нельзя переименовывать (об этом — ниже).
Добавленный плагин Ткаббер загрузит при следующем старте.
На заметку: как ни странно, но некоторых пользователей на поприще подключения плагина останавливало отсутствие каталога plugins в домашнем каталоге Ткаббера. Это — совершенно нормальное явление; если такого каталога нет, создайте его. И ещё: если для вас нотация ~/.tkabber — "китайская грамота", идите и почитайте эту статью.
Подводные камни при обновлении Ткаббера
Имейте в виду, что большинство плагинов Ткаббера "привязаны" к конкретному релизу этой программы, так как они используют различные программные интерфейсы Ткаббера, а те имеют тенденцию изменяться со временем. При подобных изменениях в Ткаббере, его плагины тоже обновляются.
Это означает, что обновляя Ткаббер, — не важно, "снимаете" ли вы копию из репозитория или устанавливаете следующий стабильный релиз — нужно всегда помнить про установленные плагины и обновлять их вместе с Ткаббером.
Невнимание к этому факту порождает 99% проблем из серии "после обновления Ткаббер сыплет ошибками". Обновите плагины и перезапустите Ткаббер.
На заметку: иногда возникает обратная проблема: вы даёте плагин от "свежей" версии Ткаббера своему товарищу с более старой версией этой программы, и там он не работает. Решением проблемы, если обновление Ткаббера невозможно, является установка плагинов от соответствующей более старой версии Ткаббера, которые доступны вместе со своими плагинами здесь.
Анатомия плагина
В простейшем случае каталог плагина содержит один-единственный файл формата ".tcl", имя которого совпадает с именем каталога; именно этот файл Ткаббер читает при загрузке плагина. Если в каталоге есть другие файлы .tcl, то они загружаются, как правило, главным файлом плагина или вообще служат для какой-то другой цели.
Вообще же, только главный файл плагина присутствует всегда, а остальное содержимое каталога плагина может быть в принципе любым. Зачастую там есть документация (например, файл README), которую, конечно же, стоит изучить. Также там могут быть различные данные, используемые плагином, например, в плагинах игр, использующих графику (шахматы, шашки), можно найти ещё подкаталог pixmaps, где хранятся изображения доски и фигур.
Однако два подкаталога, которые могут вам встретиться внутри плагина, стоит рассмотреть подробнее.
Каталог msgs, если есть, содержит переводы текстовых ресурсов плагина (текста сообщений и т.п.) на языки, отличные от английского. Этот каталог может быть интересен с двух точек зрения:
- Во-первых, вы можете захотеть, чтобы плагин использовал язык, отличный от языка интерфейса Ткаббера. В этом случае пойдите в главный файл плагина, отыщите там строчку с командой
::msgcat::mcload ...
(это загрузка каталогов с текстовыми ресурсами) и окружите её строчками:set orig [::msgcat::mclocale]
::msgcat::mclocale LC
сверху и::msgcat::mclocale $orig
— снизу. Вместо "LC" должна быть интересующая вас локаль (например, ru, uk, es и т.д.). - Во-вторых, каталог msgs — это именно то, что вам нужно менять, если вы хотите "перевести" плагин на какой-либо другой язык или исправить уже имеющийся перевод. Подробнее о технике перевода текстовых ресурсов Tcl рассказано тут.
Каталог .svn, если есть, содержит техническую информацию системы контроля версий Subversion, которая используется при разработке Ткаббера. Обычно такой каталог у вас появляется в каждом подкаталоге плагинов, которые вы "вынули" из репозитория Ткаббера (об этом рассказано ниже, в разделе "Стандартные плагины").
В принципе, этот каталог можно удалить (т.к. он фактически содержит копии всех файлов плагина + служебные файлы Subversion), но он может и пригодиться.
Дело в том, что после того, как вы получили из репозитория Subversion рабочую копию проекта, содержащего каталоги (и подкаталоги, и подкаталоги подкаталогов...), каждый из этих каталогов (и глубже) технически способен обновляться из репозитория независмо от остальных частей рабочей копии! Говоря проще, если вы "вынули" из репозитория все плагины, но используете лишь пару-тройку из них, вы можете обновлять из репозитория их и только их, просто выполняя командуsvn updateв каталогах этих плагинов. Причём сам каталог с плагином может при этом находиться где угодно — например, быть установленным в один из директориев для плагинов Ткаббера. Вот так можно обновить плагин "whiteboard":
$ cd ~/.tkabber/plugins/whiteboard $ svn up
Сисадмину на заметку
Системным администраторам следует иметь в виду, что подавляющее большинство плагинов Ткаббера не имеет средств для своего отключения в процессе работы, то есть для отключения плагина следует удалить его каталог и перезапустить Ткаббер. Поэтому нужно вдумчиво подходить к установке плагинов в "общий" каталог.
Официальные плагины для Ткаббера
В этом разделе ничего принципиально нового не будет — сводка по существующим плагинам и краткое вспомоществование для желающих скачать и установить их.
Итак, на сегодняшний день на официальной странице плагинов насчитывается 12 расширений к Ткабберу: bc, checkers, chess, cyrillize, ejabberd, georoster, mute, osd, reversi, socials, spy и whiteboard. В двух словах о каждом:
- bc — игра "Быки и коровы".
- checkers — шашки (включает разные версии: обычные, русские, американские, испанские и итальянские). Плагин весьма проработан - есть много игровых возможностей.
- chess — шахматы. Тоже весьма продвинут.
- cyrillize — если при вводе сообщения вы ошиблись раскладкой, дело можно поправить, нажав Ctrl+'.
- ejabberd — утилитка, позволяющая удалённо общаться с вашим ejabberd сервером.
- georoster — показывает на карте мира, где находятся ваши собеседники (если у них заполнены соответствующие поля в vCard).
- mute — экспериментальный плагин для коллективного редактирования текста.
- osd — выводит некоторые события и сообщения "на широком экране" — On-Screen Display.
- reversi — ещё одна настольная игра.
- socials — позволяет вводить команды типа /танцевать (результат будет такой: *nick пляшет дикий танец!).
- spy — шпионит за присутствием, регистрируя появления в онлайне и уходы в оффлайн. Можно выбрать конкретного человека или нескольких и получать оповещения при их появлении.
- whiteboard — доска для рисования. Удобно, когда надо нарисовать схему проезда к месту
распития пиваоффлайновой Jabber-тусовки ;) - debug — он и в Африке отладчик, пишет в лог ошибки касательно отмеченных ключевых слов.
- latex — показывает формулы, написанные в формате LaTeX, в виде картинок-математических формул. Работает под Windows и *nix. Нужно дополнительно установить пакеты latex, dvips, imagemagick.
Плагины, перечисленные ниже, пока что доступны только в альфа-версии Ткаббера:
- traffic — считает количество байт в несжатом, незашифрованном XML потоке. Группирует по JID-у отправителя и по типу станцы. Читать подробнее.
- Tkabber-KHIM — позволяет вводить в Ткаббере произвольные символы Unicode значительно более удобным способом, чем при помощи встроенного механизма "unisymbols".
Установить самый свежий пакет плагинов можно из SVN. Для этого необходимо проделать следующее (естественно, у вас должен быть установлен пакет svn):
svn co http://svn.xmpp.ru/repos/tkabber/trunk/tkabber-plugins tkabber-plugins
Неофициальные плагины для Ткаббера
Здесь ссылки на плагины для Ткаббера, которые не попали в tkabber-plugins или находятся в пути.
Alarm
Возможность послать собеседнику сигнал. Вид сигнала (звук, сообщение, запись в чате) выбирает собеседник. Есть фильтр и защита от флуда. Идея отсюда продолжение здесь. Разработан протокол, описание внутри. Все ошибки и запросы присылайте Feez.
- Файл: Media:Alarm-0.3.tar.gz (15K)
- Версия: 0.3 Changelog
Autoconnect
Данный плагин предназначен для автоматического соединения с нужными транспортами после отсоединения или при старте Ткаббера. Критику и пожелания направляйте eXire.
- Файл: Media:autoconnect-0.4.tar.gz (1K)
- Версия: 0.4
Tab number
Переделка патча Lknight'а в плагин. Сделано не очень красиво, но ничего более умного не придумал. Если есть какие-то идеи, то прошу сообщить eXire.
- Файл: Media:tab_number-0.1.1.tar.gz (1K)
Confirm
Добавляет вопрос при закрытии всех/остальных табов и Ткаббера. Есть графические настройки в Customize→Plugins→Confirm.
- Файл: Media:confirm-0.2.tar.gz (1K)
Rsssaver
Поскольку Ткаббер не кэширует новости при некорректном выходе, то у людей, не закрывающих Ткаббер днями/неделями, возникали случаи, когда в кэше находились новости недельной (и более) давности. Данный плагин кэширует новости через %n пришедших сообщений, а также добавляет кнопку сохранения в окно новостей (для ручного сохранения).
- Файл Media:rsssaver-0.2.2.tar.gz (1K)
Bookmarks
Плагин автоматически ставит bookmark в окнах чата при автоматическом и ручном уходе в away, а также при потере фокуса окном Ткаббера. Настраивается через Customize → Plugins → Bookmarks.
После распаковки архива вы увидите папку bookmarks_plugin.
- Папку bookmarks_plugin/bookmarks нужно скопировать в $HOME/.tkabber/plugins.
- Файл bookmarks_plugin/chat-bookmarks1.gif нужно скопировать в $TKABBER_DIR/pixmaps/default/tkabber,
- а патч bookmarks_plugin/bookmarks.patch накатить на файл $TKABBER_DIR/pixmaps/default/icondef.xml
При смене статуса автоматически либо вручную выставляется стандартная (красная) галочка, при потере фокуса — зелёная. В настройках можно подстроить под себя интервал тайм-аута для потери фокуса, то есть, по прошествии какого времени Ткаббер начнёт считать, что вы действительно переключились на другую программу поработать, а не просто отвлеклись на минутку глянуть почту.
Спасибо Archimed за иконку.
Будет работать только с alpha-20061110 и старше.
- Файл Media:bookmarks-0.4.3.tar.gz (1K)
Meebo me
Плагин автоматически принимает запросы авторизации и отслеживает смену ника (XEP-0172), но только для пользователей *@guest.meebo.org. Он вам понадобится, если вы собираетесь использовать виджет meebome и сообщения принимать в Ткаббере. Все ошибки и запросы присылайте Feez-у.
- Файл: meebome-0.2.tar.gz (1K)
Floating Roster Contact
Proof-of-concept plugin. Позволяет "оторвать" элемент ростера в плавающее окно без декораций. Перемещение этого окна по Drag'n'Drop. Плагин очень недоделанный (окошки не запоминаются, при логауте не пропадают, на roster push не реагируют, наверняка еще чего-нибудь нужное не делают).
- Файл: float.tar.gz (1K)
Postpone Text (chat plugin)
Этот плагин (~5k) реализует достаточно глупую вещь — с каждым окном ввода сеансов чата связывается собственный скрытый текстовый буфер + добавляется биндинг, позволяющий:
- по первой активации биндинга переместить текст из поля ввода в буфер;
- по второй его активации переместить текст обратно.
Основная идея: лично у меня (Kostix) часто возникает ситуация, когда я пишу длинный продуманный текст, и вдруг вижу, что надо бы что-то быстро написать в чат, отослать это, а затем продолжить редактирование. Причём сделать это быстрее, чем "выделить весь текст и скопировать в клипборд", и сделать это не трогая клипборд.
Данный плагин эту возможность реализует.
Настраивается:
- Событие (биндинг) для операций с буфером;
- Фон поля ввода при полном буфере (отключабельно);
- Способ вставки текста из буфера.
Настройки плагина находятся в подгруппе "Postpone Text" группы "Chat".
Приложен README с подробным описанием.
Внимание! В настоящий момент плагин будет работать только с SVN-версией ткаббера, снятой оттуда после того, как в транке появился тип "options" для элементов Customize (то есть в версиях начиная от 29 сентября 2006 года). Патч, реализующий "старый" тип "list", возможно, воспоследует.
Kostix 18:01, 28 октября 2006 (MSD)
Autoretrieve
Этот плагин автоматически запрашивает информацию о пользователях в конференции, т.е. информация сразу доступна в тултипе и не надо откравать окно Userinfo. Включить/отключить плагин можно в Customize→Conference Info
- Файл: Media:autoretrieve.tar.gz (1К)
Last Activity
Special for kroko :)
Этот плагин изменяет поведение Ткаббера на запрос last. Теперь в графе Interval (userinfo) или по команде /last <nick> показывается время, которое окно клиента <nick> неактивно.
Будет работать только с alpha-20061110 и старше.
- Файл: Media:Last_activity.tar.gz (1K)
Server Info
Добавляет в меню по правой кнопке для контакта (в контактах или в списке участников конференции) пункты для получения информации о сервере этого контакта и для того, чтобы непосредственно открыть окно Service discovery на контакте или на его сервере.
- Файл: server_info.tar.gz (1K)
Open URL
Добавляет в меню по правой кнопке на URL в окне чата пункты, позволяющие открыть этот URL в заданном браузере.
- Файл: openurl.tar.gz (1K)
Hihglight XEP URLs
Подсвечивает как URL в окне чата слова xep-0123 или jep-0123. При клике открывает браузер на странице соответствующего XEP (XMPP Extension Proposal, а не то, что вы подумали).
Будет работать только с alpha-20061115 и свежее.
- Файл: xeps-0.2.tar.gz (1K)
Tkabber-KHIM
- Внимание! С 13 декабря 2006 этот плагин находится в транке, так что если вы используете версию с SVN, не заморачивайтесь и снимите его оттуда. Тем более, что версия плагина в транке уже получила несколько изменений, недоступных в той версии, что выложена здесь. (Изменения, впрочем, непринципиальные, так что если у Вас стабильная версия Ткаббера, возьмите плагин отсюда.)
Этот плагин прикручивает к Ткабберу особый "как бы метод ввода" авторства Кевина Кенни — KHIM, позволяя вводить в Ткаббере произвольные символы Unicode значительно более удобным способом, чем при помощи встроенного механизма "unisymbols":
- Можно определить особую "кнопку композиции" — например, , и список "входных последовательностей" — пар символов, которые, будучи введены после нажатия кнопки композиции, "превращаются" в некоторый символ Unicode. Клавиша композиции, входные последовательности и их отображение на символы Unicode настраиваются произвольным образом.
- Двойным нажатием упомянутой клавиши композиции можно вызвать специальное окно, предоставляющее возможность выбрать любой символ Unicode, который будет вставлен в текущую позицию курсора.
Примерно это выглядит так:
- В настройках KHIM вы выбрали клавишу в качестве клавиши композиции, и определили, что последовательность символов "A даёт "А умляут" — Ä.
- Тогда после применения настроек вы можете в любом поле ввода Ткаббера ввести: "A и получить Ä.
После установки плагина и перезапуска Ткаббера посетите меню Службы → Расширения и выберите там пункт "KHIM Options". Обязательно прочтите справку по работе и настройке KHIM, нажав "Справка..." в появившемся диалоге.
Пакеты khim и autoscroll, необходимые для работы Ткаббера, но имеющиеся только в tklib, упакованы прямо в плагин, т.к. tklib не очень распространён, и в текущую стабильную его версию khim ещё не входит.
Плагин должен работать на любой версии Ткаббера, так что приветствуется тестирование на любых доступных версиях.
Пара полезных советов: Помните, что KHIM включен по умолчанию, то есть чисто теоретически в настройки ходить не обязательно (в случае, если пакет вам уже знаком). Но конечно, если вы видите его впервые, сходить туда имеет смысл: ознакомиться с "прошитыми" комбинациями и, в случае нужды, дополнить и/или измененить список, ну и почитать справку. После завершения работы с опциями окно можно закрыть (но можно и оставить, чтобы иметь комбинации перед глазами). В некоторых европейских раскладках (в частности, в испанской) некоторые дефолтные комбинации могут не работать. Например, буква "энье" — ñ, вводящаяся по умолчанию как ~n — из-за тильды, которая сама по себе висит на сочетании клавиш "RightAlt-4" и портит весь пирог. Ввод этой буквы можно легко перевесить на другое сочетание, к примеру, "$n" (доллар вызывается как обычно, "Shift-4", и проблем не вызывает). Так что если у вас установлен нетрадиционный дополнительный язык, и вы испытываете трудности с вводом некоторых букв, всё можно легко поправить. Не бойтесь обновлять плагин — все ваши изменения сохраняются в файле ~/.tkabber/custom.tcl, и останутся там даже после удаления самого плагина.
Это — предварительная версия плагина, что означает отсутствие документации.
Файл: tkabber-khim.zip
Автор: Kostix
Версия: 1.2
Размер файла: ~34k
Примечание: если у вас в системе есть свежий tklib, то вы можете удалить подкаталоги khim и autoscroll из каталога с плагином. Про то, как снять tklib с CVS и поставить его в систему, рассказано здесь. Имейте в виду, что KHIM вошёл в состав tklib совсем недавно, и текущая стабильная версия (на 9 декабря 2006 года) его не содержит — берите с CVS.
Однако имейте в виду, что в той версии khim, что идёт с плагином, уже имеется один багфикс и русский перевод всех окон KHIM. Этого пока нет в tklib.
so_keepalive
Плагин предназначен для включения опции SO_KEEPALIVE на сокетах соединений, устанавливаемых Ткаббером.
Требует наличия пакета Tclx.
"Очень бета" в том смысле, что требует очень серьёзного тестирования, а так же настройки Вашей системы для того, чтобы механизм TCP keepalive делал то, что Вы от него ожидаете.
Читайте README.
Файл: so_keepalive.zip, ~3.5k
Автор: Kostix