Plugins

From Tkabber Wiki

Jump to: navigation, search


Contents

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

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

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

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

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

  1. Каталог, имя которого находится в переменной окружения TKABBER_SITE_PLUGINS
  2. Каталог ~/.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.

Autoconnect

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

Tab number

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

Confirm

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

eXire

Rsssaver

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

eXire.

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 и старше.

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":

  • Можно определить особую "кнопку композиции" — например, Pause, и список "входных последовательностей" — пар символов, которые, будучи введены после нажатия кнопки композиции, "превращаются" в некоторый символ Unicode. Клавиша композиции, входные последовательности и их отображение на символы Unicode настраиваются произвольным образом.
  • Двойным нажатием упомянутой клавиши композиции можно вызвать специальное окно, предоставляющее возможность выбрать любой символ Unicode, который будет вставлен в текущую позицию курсора.

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

  • В настройках KHIM вы выбрали клавишу Scroll_Lock в качестве клавиши композиции, и определили, что последовательность символов "A даёт "А умляут" — Ä.
  • Тогда после применения настроек вы можете в любом поле ввода Ткаббера ввести: Scroll_Lock"A и получить Ä.

После установки плагина и перезапуска Ткаббера посетите меню Службы → Расширения и выберите там пункт "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

Personal tools