Tkabber Wiki

Plugins
Login

Plugins

From Tkabber Wiki

Contents

Плагинология

В этом разделе рассказано о внешних плагинах Ткаббера.

Если вы — новичок, прочитайте как минимум первые два раздела.

Как подключить плагин

При старте Ткаббер ищет плагины в двух местах и в указанном порядке:

  1. Каталог, имя которого находится в переменной окружения TKABBER_SITE_PLUGINS
  2. Каталог ~/.tkabber/plugins

Любой из этих каталогов (в том числе оба) могут отсутствовать. Первый из них, как и следует из названия соответствующей переменной окружения, предназначен для использования плагинов всеми пользователями системы, в то время как второй — конкретным пользователем (то есть лично вами).

Физически плагин Ткаббера представляет собой каталог с файлами, который следует скопировать в любой из указанных выше директориев (но только в один из них). Заметьте, что копировать надо каталог целиком, а не файлы из него; кроме того, каталог плагина нельзя переименовывать (об этом — ниже).

Добавленный плагин Ткаббер загрузит при следующем старте.

На заметку: как ни странно, но некоторых пользователей на поприще подключения плагина останавливало отсутствие каталога plugins в домашнем каталоге Ткаббера. Это — совершенно нормальное явление; если такого каталога нет, создайте его. И ещё: если для вас нотация ~/.tkabber — "китайская грамота", идите и почитайте эту статью.

Подводные камни при обновлении Ткаббера

Имейте в виду, что большинство плагинов Ткаббера "привязаны" к конкретному релизу этой программы, так как они используют различные программные интерфейсы Ткаббера, а те имеют тенденцию изменяться со временем. При подобных изменениях в Ткаббере, его плагины тоже обновляются.

Это означает, что обновляя Ткаббер, — не важно, "снимаете" ли вы копию из репозитория или устанавливаете следующий стабильный релиз — нужно всегда помнить про установленные плагины и обновлять их вместе с Ткаббером.

Невнимание к этому факту порождает 99% проблем из серии "после обновления Ткаббер сыплет ошибками". Обновите плагины и перезапустите Ткаббер.

На заметку: иногда возникает обратная проблема: вы даёте плагин от "свежей" версии Ткаббера своему товарищу с более старой версией этой программы, и там он не работает. Решением проблемы, если обновление Ткаббера невозможно, является установка плагинов от соответствующей более старой версии Ткаббера, которые доступны вместе со своими плагинами здесь.

Анатомия плагина

В простейшем случае каталог плагина содержит один-единственный файл формата ".tcl", имя которого совпадает с именем каталога; именно этот файл Ткаббер читает при загрузке плагина. Если в каталоге есть другие файлы .tcl, то они загружаются, как правило, главным файлом плагина или вообще служат для какой-то другой цели.

Вообще же, только главный файл плагина присутствует всегда, а остальное содержимое каталога плагина может быть в принципе любым. Зачастую там есть документация (например, файл README), которую, конечно же, стоит изучить. Также там могут быть различные данные, используемые плагином, например, в плагинах игр, использующих графику (шахматы, шашки), можно найти ещё подкаталог pixmaps, где хранятся изображения доски и фигур.

Однако два подкаталога, которые могут вам встретиться внутри плагина, стоит рассмотреть подробнее.

Каталог msgs, если есть, содержит переводы текстовых ресурсов плагина (текста сообщений и т.п.) на языки, отличные от английского. Этот каталог может быть интересен с двух точек зрения:

Каталог .svn, если есть, содержит техническую информацию системы контроля версий Subversion, которая используется при разработке Ткаббера. Обычно такой каталог у вас появляется в каждом подкаталоге плагинов, которые вы "вынули" из репозитория Ткаббера (об этом рассказано ниже, в разделе "Стандартные плагины").

В принципе, этот каталог можно удалить (т.к. он фактически содержит копии всех файлов плагина + служебные файлы Subversion), но он может и пригодиться.

svn update

$ cd ~/.tkabber/plugins/whiteboard
$ svn up

Сисадмину на заметку

Системным администраторам следует иметь в виду, что подавляющее большинство плагинов Ткаббера не имеет средств для своего отключения в процессе работы, то есть для отключения плагина следует удалить его каталог и перезапустить Ткаббер. Поэтому нужно вдумчиво подходить к установке плагинов в "общий" каталог.

Официальные плагины для Ткаббера

В этом разделе ничего принципиально нового не будет — сводка по существующим плагинам и краткое вспомоществование для желающих скачать и установить их.

Итак, на сегодняшний день на официальной странице плагинов насчитывается 12 расширений к Ткабберу: bc, checkers, chess, cyrillize, ejabberd, georoster, mute, osd, reversi, socials, spy и whiteboard. В двух словах о каждом:

Плагины, перечисленные ниже, пока что доступны только в альфа-версии Ткаббера:

Установить самый свежий пакет плагинов можно из SVN. Для этого необходимо проделать следующее (естественно, у вас должен быть установлен пакет svn): svn co http://svn.xmpp.ru/repos/tkabber/trunk/tkabber-plugins tkabber-plugins

Неофициальные плагины для Ткаббера

Здесь ссылки на плагины для Ткаббера, которые не попали в tkabber-plugins или находятся в пути.

Alarm

Возможность послать собеседнику сигнал. Вид сигнала (звук, сообщение, запись в чате) выбирает собеседник. Есть фильтр и защита от флуда. Идея отсюда продолжение здесь. Разработан протокол, описание внутри. Все ошибки и запросы присылайте Feez.

Autoconnect

Данный плагин предназначен для автоматического соединения с нужными транспортами после отсоединения или при старте Ткаббера. Критику и пожелания направляйте eXire.

Tab number

Переделка патча Lknight'а в плагин. Сделано не очень красиво, но ничего более умного не придумал. Если есть какие-то идеи, то прошу сообщить eXire.

Confirm

Добавляет вопрос при закрытии всех/остальных табов и Ткаббера. Есть графические настройки в Customize→Plugins→Confirm.

eXire

Rsssaver

Поскольку Ткаббер не кэширует новости при некорректном выходе, то у людей, не закрывающих Ткаббер днями/неделями, возникали случаи, когда в кэше находились новости недельной (и более) давности. Данный плагин кэширует новости через %n пришедших сообщений, а также добавляет кнопку сохранения в окно новостей (для ручного сохранения).

eXire.

Bookmarks

Плагин автоматически ставит bookmark в окнах чата при автоматическом и ручном уходе в away, а также при потере фокуса окном Ткаббера. Настраивается через Customize → Plugins → Bookmarks.

После распаковки архива вы увидите папку bookmarks_plugin.

При смене статуса автоматически либо вручную выставляется стандартная (красная) галочка, при потере фокуса — зелёная. В настройках можно подстроить под себя интервал тайм-аута для потери фокуса, то есть, по прошествии какого времени Ткаббер начнёт считать, что вы действительно переключились на другую программу поработать, а не просто отвлеклись на минутку глянуть почту.

Спасибо Archimed за иконку.

Будет работать только с alpha-20061110 и старше.

eXire.

Meebo me

Плагин автоматически принимает запросы авторизации и отслеживает смену ника (XEP-0172), но только для пользователей *@guest.meebo.org. Он вам понадобится, если вы собираетесь использовать виджет meebome и сообщения принимать в Ткаббере. Все ошибки и запросы присылайте Feez-у.

Floating Roster Contact

Proof-of-concept plugin. Позволяет "оторвать" элемент ростера в плавающее окно без декораций. Перемещение этого окна по Drag'n'Drop. Плагин очень недоделанный (окошки не запоминаются, при логауте не пропадают, на roster push не реагируют, наверняка еще чего-нибудь нужное не делают).

Teo

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

eXire

Last Activity

Special for kroko :)

Этот плагин изменяет поведение Ткаббера на запрос last. Теперь в графе Interval (userinfo) или по команде /last <nick> показывается время, которое окно клиента <nick> неактивно.

Будет работать только с alpha-20061110 и старше.

eXire

Server Info

Добавляет в меню по правой кнопке для контакта (в контактах или в списке участников конференции) пункты для получения информации о сервере этого контакта и для того, чтобы непосредственно открыть окно Service discovery на контакте или на его сервере.

Teo

Open URL

Добавляет в меню по правой кнопке на URL в окне чата пункты, позволяющие открыть этот URL в заданном браузере.

Teo

Hihglight XEP URLs

Подсвечивает как URL в окне чата слова xep-0123 или jep-0123. При клике открывает браузер на странице соответствующего XEP (XMPP Extension Proposal, а не то, что вы подумали).

Будет работать только с alpha-20061115 и свежее.

Teo

Tkabber-KHIM

Внимание! С 13 декабря 2006 этот плагин находится в транке, так что если вы используете версию с SVN, не заморачивайтесь и снимите его оттуда. Тем более, что версия плагина в транке уже получила несколько изменений, недоступных в той версии, что выложена здесь. (Изменения, впрочем, непринципиальные, так что если у Вас стабильная версия Ткаббера, возьмите плагин отсюда.)

Этот плагин прикручивает к Ткабберу особый "как бы метод ввода" авторства Кевина КенниKHIM, позволяя вводить в Ткаббере произвольные символы Unicode значительно более удобным способом, чем при помощи встроенного механизма "unisymbols":

Примерно это выглядит так:

После установки плагина и перезапуска Ткаббера посетите меню Службы → Расширения и выберите там пункт "KHIM Options". Обязательно прочтите справку по работе и настройке KHIM, нажав "Справка..." в появившемся диалоге.

Пакеты khim и autoscroll, необходимые для работы Ткаббера, но имеющиеся только в tklib, упакованы прямо в плагин, т.к. tklib не очень распространён, и в текущую стабильную его версию khim ещё не входит.

Плагин должен работать на любой версии Ткаббера, так что приветствуется тестирование на любых доступных версиях.

Пара полезных советов: Помните, что KHIM включен по умолчанию, то есть чисто теоретически в настройки ходить не обязательно (в случае, если пакет вам уже знаком). Но конечно, если вы видите его впервые, сходить туда имеет смысл: ознакомиться с "прошитыми" комбинациями и, в случае нужды, дополнить и/или измененить список, ну и почитать справку. После завершения работы с опциями окно можно закрыть (но можно и оставить, чтобы иметь комбинации перед глазами). В некоторых европейских раскладках (в частности, в испанской) некоторые дефолтные комбинации могут не работать. Например, буква "энье" — ñ, вводящаяся по умолчанию как Pause~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 custom essay