Материал из Tkabber Wiki
Содержание
- 1 Предупреждение
- 2 Смайлики
- 3 Аватары
Предупреждение
Информация в этом разделе написана, исходя из возможностей Ткаббера 0.10.0 и выше; если у вас более старая версия, — вам сюда.
Смайлики
40iN_KoS Нет в русском языке слов,
которые могут передать мое настроение..40iN_KoS но есть идеаматика..
40iN_KoS *CRAZY*
AmeNO нет у меня в клиенте смайлов,
которые могут передать твое настроение.."Официальное" название этих "улыбаек" в XMPP — "эмоциконки" (от EMOTion ICONs), посему везде, где используется термин "эмоциконка", можно читать "смайлик"; обратное также верно.
Работа с эмоциконками
Комбинация <Alt-E>
в окне ввода чата открывает менюшку, в которой можно
выбрать любой смайлик из подключённой схемы. Об этом и о многом другом, кстати,
рассказано в пункте меню Помощь → Краткая справка.
Примечание: На самом деле есть по меньшей мере три аргумента против такого подхода:
- "руками" смайлики набирать ощутимо быстрее, стоит только немного потренироваться;
- имейте в виду, что "стандартных" (то есть всем понятных) смайликов не так уж и много (не более четырёх), а схемы у всех стоят разные, с разным количеством смайликов, поэтому зачастую ваш распрекрасный смайлик будет увиден читающим в виде чего-нибудь наподобие :BEER:, *THUMBS UP* или (Y) — неужели это действительно то, что вы хотели? ;-)
- многие вообще отключают смайлики; поразмыслите над этим, имея в виду предыдущий пункт.
Управление эмоциконками
Наборы эмоциконок можно менять на лету при помощи графического интерфейса настроек — так же как это делается для наборов иконок интерфейса (pixmaps themes): настройка находится в группе Chat → Emoticons и называется ::plugins::emoticons::options(theme).
Всегда присутствует одна специальная тема с названием "Нет" ("None") — её выбор (с сохранением) отключает показ смайликов.
Ткаббер при запуске ищет наборы иконок в двух местах:
- Каталоге
emoticons
, находящемся в каталоге с кодом Ткаббера; - Каталоге
emoticons
, находящемся в каталоге настроек Ткаббера.
Поэтому для добавления своего набора эмоциконок в Ткаббер:
- Положите каталог с этим набором в один из каталогов указанных выше (предпочтительнее — в пользовательский);
- Перезапустите Ткаббер;
- Зайдите в настройки, выберите появившийся в выпадающем списке новый набор, сохраните эту настройку.
Во-вторых, можно подключать наборы эмоциконок "по старинке": при помощи соответствующей команды в файле конфигурации. Этот способ не приветствуется, особенно — для использования новичками. Команда указывается, например, так:
hook::add postload_hook {
::plugins::emoticons::load_dir "Путь_до_каталога_с_набором_иконок"
}
Обратите внимание, что начиная с версии 0.10.0 пространство имён
::plugins::emoticons
, содержащее команды для работы с эмоциконками,
"потеряло" лишнюю букву "e", которую оно имело в более ранних версиях, когда
называлось ::plugins::emoteicons
. В настоящее время
Ткаббер поддерживает старое название для совместимости, но в следующем
релизе этот "костылёк" будет выброшен, поэтому подумайте об этом заранее.
Имейте в виду, что если вам нужно сослаться в файле конфигурации на каталог настроек Ткаббера, наиболее разумно использовать специальную переменную Ткаббера — $::configdir.
Заодно ответим на пару других достаточно часто возникающих вопросов:
Нет, Ткаббер не может увидеть новый набор без перезапуска. В качестве "хака" можете попробовать выполнить в консоли Ткаббера команду
::plugins::emoticons::enable_subsystem
которая, помимо всего прочего, пересканирует каталоги с наборами эмоциконок, но желаемое действие этой команды, естественно, не гарантируется.
Нет, выбрать набор эмоциконок "руками" из произвольного места нельзя (так же, как и набор иконок интерфейса, к примеру). Если всё же вам это очень нужно, можете либо указать прямую команду загрузки набора эмоциконок в файле конфиурации, либо можете попробовать использовать символические ссылки, "линкуя" каталоги с наборами эмоциконок из произвольного каталога в один из известных ткабберу, например, в Unix:
ln -s /usr/local/share/my-smile-packs/uglyfaces ~/.tkabber/emoticons/uglyfaces
Ситуация в Windows несколько сложнее; подробности изложены тут.
Стабильный ткаббер 0.10.0 не умеет грузить ".jisp"-файлы напрямую. Сначала их нужно распаковать — на самом деле это обычные zip-архивы.
Готовые комплекты смайликов
Комплекты анимированных смайликов
- Emoticons-tz.zip (202 kB)
Исходник: игра Timezero.
Количество: 90.
Автор комплекта: xmpp:roz@jabber.ru
.
- Big pack.zip (520 kB)
Количество: 132.
Автор комплекта: xmpp:kellin@jabber.ru
.
Примечание: смайлики анимированные, и ощутимо забивают процессор даже когда
не используются (просто запущена программа с подключёнными смайликами). При
вызове же окна по <Alt-E>
процессор забивается на все 100%. Просьба знающим людям
посмотреть, что там такое может быть.
При использовании патча для улучшенной поддержки GIF (см. ниже) забивание процессора замечено не было.
Комплект emoticons-bombusmod
Эти смайлики от бомбуса перепакованы для
Ткаббера камрадом SnAkE (xmpp:3XXL@jabber.ru
).
93 штуки, 39 Кб.
Исправленный набор смайликов "от пуза"
Исправленная версия комплекта "puzazBox".
Lknight исправил ошибки в icondef.xml и добавил
мнемонику :-E
, которая ссылается на devil.gif.
66 штук, 38 Кб.
Комплект в стиле "колобки": Big Pack
Big Pack — большой пак смайлов в стиле "колобки" также перепакован из "бомбусмодовских" смайлов aka Tasha.
Очень симпатично вышло, на мой взгляд. Эмоций много: 136 штук. Пак весит 162 кб.
Идея создания: xmpp:artru@jabber.ru
; и, собственно, человек, который долго не
соглашался их подточить для Ткаббера и после длительных уговоров таки
согласился. Спасибо ему: xmpp:CSander@xmpp.ru
.
Пак выложил Русский.
Комплект окончательный
Teh ultimate emoticon pack — пак с блекджеком и пр. Выполнен в духе минимализма и любви к литературному русскому языку.
Набор из черного и белого шрифта (как на скрине) + немного поправлен icondef.xml.
Полное искоренение смайликов
Выберите тему смайликов с названием "Нет" ("None" в англ. варианте) и сохраните настройку — смайлики начнут показываться "как есть" — в виде своих текстовых мнемоник.
Клонирование смайликов
Задача: сделать так, чтобы некоторые смайлики, для которых в любимом наборе нет картинок, всё-таки рисовались картинками.
Решение: "мнемоники" смайлов связаны с соответствующими картинками при
помощи массива ::emoticons::emoticons
. Ключом (индексом) массива является
мнемоника смайлика, а значением — его картинка. Знание этого позволит нам
"клонировать" смайлики. Помещаем в config.tcl такой код:
hook::add finload_hook {
namespace eval ::emoticons {
variable emoticons
set orig :-)
set dest =)
set emoticons($dest) $emoticons($orig)
}
}
Сие заклинание связывает мнемонику =)
с картинкой от мнемоники :-)
.
Внимание: если у вас в конфиге прописана загрузка своего смайл-пака, то
обсуждаемый код должен идти после команды загрузки (т.к. она меняет
содержимое массива со смайликами). Можно поместить их в один finload_hook
,
лишь бы "клонирование" шло последним.
Вынимание: исходный смайлик, мнемоника которого помещается в переменную
orig
, обязан иметь картинку, иначе ваш конфиг взорвётся с шумом и дымом при
старте Ткаббера.
Внимание в версиях 0.9.x везде вместо "emoticons" нужно писать "emoteicons".
Массовое клонирование
Данный подход был изобретён для 0.9.x с целью обрабатывать "ROTFL/LOL" смайлики
типа :-)))))))))))))))
.
Начиная с 0.10.0 данная проблема решается проще — путём включения опции ::plugins::emoticons::options(handle_lol) в настройках эмоциконок.
Если у вас 0.9.x, читайте здесь.
Анимированные смайлы
Поддержка анимированных эмоциконок всегда была и является "нелюбимым ребёнком" в Ткаббере (наравне с аватарами). Причина в том, что анимированные картинки очень сильно затрудняют их обработку, поскольку на самом деле они значительно ближе к видеопотокам, чем к картинкам. Поскольку поддержка анимированных гифов отсутствует в библиотеках Tk и Img, которые Ткаббер использует для поддержки изображений, обработка анигифов требует достаточно извращённых приседаний со стороны разработчиков. До тех пор, пока кто-нибудь не напишет для Ткаббера спец. код для работы с картинками, который будет прозрачно обрабатывать анигифы так же, как и нормальные картинки, ситуация навряд ли изменится.
С другой стороны, поддержка анигифов в Ткаббере, в принципе, есть — она реализована в виде стандартного внешнего плагина aniemoticons. Если вы не знаете как устанавливать плагины Ткаббера, почитайте начало этой статьи.
Аватары
Подключение своей аватары
Чтобы аватара подцепилась, нужно правильно указать путь к ней в конфиге, например, так:
if {[file exists $::configdir/avatar.gif]} {
avatar::load_file $::configdir/avatar.gif
} else {
avatar::load_file $::rootdir/pixmaps/default/tkabber/tkabber-logo.gif
}
Как нетрудно заметить, этот код проверяет, имеется ли файл avatar.gif в директории, имя которой содержится в переменной $::configdir, и если его не находит, грузит логотип Ткаббера. Конечно, никто вас не заставляет называть ваш аватар именно так и класть именно туда. Но не забудьте написать путь в соответствии с местоположением вашего файла.
При выборе своей аватары помните, что графический файл может быть только формата gif. Не делайте аватару больших размеров — это не фотография. Постарайтесь уложиться в 5 килобайт, такие картинки и так будут грузится долго. И вообще, берите пример с аватары Bigote.
Если конфиг у вас был изначально пустым, необходимо заключить строчку, грузящую аватару (ну или весь вышеприведённый код), в хук:
hook::add finload_hook {
avatar::load_file $::configdir/avatar.gif
}
Теперь, объявив аватару (Службы → Расширения → Аватара → Объявление), вы можете быть уверенным, что клиент, поддерживающий её просмотр, её увидит. Проверить это можно, заглянув в собственную персональную информацию, находясь в какой-нибудь конференции (при редактировании персональной инфы аватара не видна). Помимо прочих должна появиться вкладка "Аватара".
Объявление и "расшаривание" аватары можно тоже прописать в конфиг:
set avatar::options(announce) 1
set avatar::options(share) 1
Но вот вопрос: а сам Ткаббер может показывать нам чужие аватары? Краткий ответ: может. Длинный: надо немного потрудиться.
Просмотр аватары собеседника
Если у человека подключена аватара, то её можно увидеть в персональной инфе.
Если же вы хотите видеть аватару собеседника в окне чата, то:
- Хак от Badlop. Небольшое изменение файла chat.tcl покажет аватару в окне чата.
- Патч от Archimed — расширение возможностей хака от Badlope. Аватары автоматически масштабируются под размер выделенной области, поддержка прозрачности, поддержка анимированных аватаров.