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), но он может и пригодиться.
svn update
$ 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":
- Можно определить особую "кнопку композиции" — например, 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 custom essay