Tkabber Wiki

0.9.x/ЧаВо
Login

Материал из Tkabber Wiki

Содержание

В старпаке/старките нет звука/поддержки JPEG,PNG/сжатия

Без переделки старпака эту проблему не решить. Однако, Kostix добавил в официальный старпак под win32 поддержку сжатия и возможность подгружать img.kit, содержащий пакет TkImg. Подробнее читайте здесь.

Пропадает содержимое ростера

Вопрос: Если отключить показ в ростере транспортных иконок show_transport_user_icons 0 и включить показ активных разговоров ::ifacetk::roster::options(chats_group) 1, то при попытке открыть хоть один чат с каким-нибудь JID, содержимое ростера пропадает и до перезапуска Ткаббера не восстанавливается.

Ответ: Обновитесь с Tkabber SVN — всё уже исправлено.

Не подключаются новые смайлики (звуковые схемы)

Вопрос: Подправил конфиг, прописав там путь к новым смайликам (звуковым схемам), но при перезагрузке они не подключаются.

Ответ: Для начала ознакомьтесь с уже имеющейся информацией на эту тему. Далее убедитесь, что путь ведёт именно туда, где лежат файлы. В файле конфигурации (например, от badlop) путь к смайликам указан такой: /usr/share/tkabber/emoticons-tkabber — в установочный директорий. При добавлении новых смайл-паков их обычно кладут в домашний каталог, в ~/.tkabber/emoticons-tkabber, и если вы только дописали в конец строки название нового директория, эффекта не будет :-)

Кстати, звуковые схемы как таковые в Ткаббере уже не подключаются. Начиная с версии 0.9.8 можно назначить любой звуковой файл (в формате wav) для каждого из событий отдельно.

Можно ли смайлики отключить?

Вопрос: Сабж. Не хочу никаких смайликов, даже дефолтных.

Ответ: это легко сделать. Рассказка — здесь

Проблема со звуковой схемой

Вопрос: Поменял стандартную звуковую схему на Psi, и теперь звуки не работают (или работают не все). При этом xmms эти файлы проигрывает нормально.

Ответ: Судя по всему, вы работаете в Linux, а версия Ткаббера у вас — 0.9.7, потому что в версии 0.9.8 уже можно выбрать для каждого события любой звук. Возможно, проблема в том, что программа esdplay, которая установлена по умолчанию, не может проиграть некоторые wav-файлы из схемы Psi, потому что у них частота дискретизации слишком низка — 5000 Hz. Попробуйте прописать другую программу или в звуковом редакторе вроде Audacity отредактируйте файлы, поменяв частоту дискретизации на 11000 Hz. Не забудьте, что если вы указываете в настройках звука просто имя звуковой схемы, то файлы, которые вам нужно редактировать, лежат в /usr/share/tkabber/sounds/psi

Выделение текста жирным, курсивом и подчёркиванием

Вопрос: Как выделить слово или фразу одним или несколькими из этих стилей?

Ответ: Перечитайте статью Быстрый старт — там всё подробно расписано, и даны примеры.

В версиях до 0.10.0 выделять фразы, содержащие пробелы, лишь двумя форматирующими символами по краям невозможно. То есть, выделять надо каждое слово. В будущем ситуация, возможно, изменится. Если да — свистнем ;) А до тех пор *фраза вот такого типа* будет выводиться в окне чата "as is". Кроме того, стартовый и стоповый символы выделения должны граничить с пробельными символами (пробел, таб, перевод строки) слева и справа, соответственно. То есть, к примеру:

watch *this*! → watch *this*! (ошибка: "!" сразу после "*")
now *watch* this! → now watch this!

(*фиг* вам!) → (*фиг* вам!) (ошибка: "(" перед "*")
(а вот *фиг* вам!) → (а вот фиг вам!)

Игнор — великая вещь!

Вопрос: А доступен ли пользователям Jabber игнор, который так здорово помогал избегать конфликтов на IRC-каналах?

Ответ #1: В Ткаббере 0.10.0 реализовано игнорирование сообщений от участников конференций на стороне клиента (Ткаббера).

Ответ #2: В спецификациях MUC (Multi-User Chat) игнорирование не заложено, однако кое-что можно сделать. Для начала немного теории.

Сообщения из комнат приходят от джида комнаты. Сообщения от присутствующих там — в виде джида комнаты с ресурсом, который является ником автора сообщения. То есть сообщение от пользователя pupkin из комнаты rotten-chatter@conference.jabber.ru приходят от джида rotten-chatter@conference.jabber.ru/pupkin. Это можно использовать для эмуляции игнор-листов: добавлять в список приватности "игнорируемый" вот такие полные джиды.

В Ткаббере защита приватности обеспечивается двумя списками: "невидимый" и "игнорируемый" (о грамматической корректности этих названий промолчим). Нас интересует второй. Вызываем список на редактирование (Tkabber → Обеспечение приватности → Изменить игнорируемый список) и добавляем в него JID ненавистного вам человека так, как было описано выше: room_name@conference.jabber-server.org/trolls_nick. После нажатия на кнопку "Отправить" неведомая сила вышибает вас из комнаты. Перезайдите, и voila! — теперь вы не увидите не только фраз этого человека, но и его самого в комнате, равно как любые iq-запросы с его стороны. Само собой, это верно только для одной комнаты и только для одного ника. Для других надо сделать отдельные записи в списке. Игнор будет работать до тех пор, пока тролль не сменит ник или пока вы не удалите эту запись из игнорируемого списка (потребуется перезайти в комнату).

Важное дополнение: исследования практической стороны показали, что эффективность такого способа игнорирования очень низка. Надоеда меняет ник и тут же появляется в списке участников конференции. Вам же приходится заново вносить новый JID в список, при этом вас снова вышибет из комнаты. Игра не стоит свеч. Впрочем, если надоеде никто не скажет, что его добавили в игнор, то он может и не догадаться сменить ник. На крайний случай у комнаты есть владелец и администраторы. Вряд ли им понравится, если кто-то будет издеваться над посетителями.

Внимание, баг! Если включать игнор через контекстное меню привата (а тролли часто достают именно в приватах), то в игнор-список заносится джид комнаты без ресурса, то есть после вышибания вас из комнаты попасть туда снова вы не сможете. А поскольку править записи в игнор-листе нельзя (можно только удалять), то вносить правильный полный джид в лист следует через главное меню Ткаббера, как было описано выше. Баг этот, возможно, будет исправлен в одной из грядущих svn-версий, но пока этого не случилось, а также для пользователей стабильных релизов рекомендация будет такой: игнорить ручками, хоть это гораздо более неудобно...

Как почитать протокол общения "в привате" с участником групчата, которого больше нет в комнате?

Вопрос: Беседовал в привате с человеком из комнаты, потом закрыл окно чата, участник из комнаты ушёл, как посмотреть протокол общения с ним?

Ответ #1: Начиная с версии 0.10.0 в Ткаббере реализован браузер истории разговоров.

Ответ #2: Открыть протокол общения в Ткаббере можно только из контекстного меню на контакте в одном из ростеров — основном или группового чата. Соответственно, если нужного вам контакта нет ни в одном из ростеров, а почитать протокол общения нужно, придётся прибегнуть к обходному манёвру.

Вам потребуется вручную вызвать процедуру Ткаббера, открывающую окно с протоколом чата для выбранного JID. Для этого в консоли Ткаббера введите:

 logger::show_log room@service.host.dom/nick

где

Итого, для просмотра истории общения с пользователем "vasya" комнаты "linux-talks" сервера "jabber.ru" вам нужно написать в комнате:

logger::show_log vasya@conference.jabber.ru/vasya

После появления диалога консоль можно закрыть.

Примечание: естественно, что этот способ работает для любых контактов, то есть параметром для logger::show_log может быть любой JID, с которым вы вели диалог. Это может пригодиться, к примеру, для чтения протокола общения с контактом, которого вы удалили из своего ростера.

Проверка орфографии

Вопрос: Можно ли "прикрутить" к Ткабберу какую-нибудь программу, чтобы проверять орфографию на лету?

Ответ: Да, можно. Для начала надо установить пакет ispell и настроить его, убедившись, что он работает сам по себе. Установите также необходимые словари. Затем в конфиг вне всяких хуков надо вписать строчку

set use_ispell 1

Запустив Ткаббер (или перезапустив, если он был открыт), идите в Настройки → Плагины → Ispell и там проверьте, соответствует ли действительности путь к исполняемому файлу ispell (для *nix это обычно /usr/bin/ispell). Ещё вам необходимо указать, какой словарь вы собираетесь использовать, а также его кодировку. В поле настройки ::plugins::ispell::options(dictionary) пишем russian, а в следующем — скажем, koi8-r. Вторую опцию лучше не трогать, ибо она сильно загрузит ваш процессор ненужными проверками недописанных слов на каждой новой букве. Не забудьте сохранить изменённые настройки для будущих сессий и перезапустите Ткаббер снова. Теперь, когда вы будете писать сообщения, все слова с орфоргафическими ошибками, а также слова, отсуствующие в словаре, будут выделяться красным цветом прямо в поле ввода (не подумайте вдруг, что ispell станет проверять орфографию в приходящих сообщениях). Учтите, что одновременно можно работать лишь с одним словарём.

В Windows процесс настройки точно такой же. Вот вам в помощь небольшое руководство по сборке и настройке самого ispell в виндах (англ.) Не забудьте указать кодировку cp1251. )

К сожалению, с aspell (бинарники для Win32 можете найти тут) имеются проблемы, и это вполне понятно, потому что синтаксис у этих программ немного разный. Ткаббер сразу же просекает, что работает не с той программой, и выдаёт ошибку, предлагая указать правильный путь к ispell. Тем не менее, при наличии прямых рук и некоторого количества мозгов наверняка можно решить и эту проблему. Если вам известно, как это сделать, просим поделиться информацией.

Стайлкоды

В принципе, общение в групповом чате или с глазу на глаз ничем не отличается от общения в других программах - ICQ, IRC и так далее. Но свои тонкости есть, и лучше сразу с ними познакомиться.

Пишем Получаем
/me хочет спать * testirovanie хочет спать
_подчёркнутый_ _текст_ подчёркнутый текст
*жирный* *текст* жирный текст
/наклонный/ /текст/ наклонный текст
/*можно*/ /_смешивать_/ можно смешивать
_*разные*_ */_стили_/* разные стили
_/*но-надо-быть-аккуратным_/* _*/но-надо-быть-аккуратным_/*
*и помнить о пробелах* *и помнить о пробелах*

Как видите, текст можно делать жирным, подчёркнутым и курсивом, но выделять приходится каждое слово, иначе всё напечатается как есть. Можно смешивать разные стили. Главное, помнить про вложение символов выделения. Если эта возможность вам мешает, её можно отключить в Настройках (группа Chat, Включить выделение).

Можно ли добавить в ростер самого себя?

Вопрос: У меня запущено два Ткаббера: один дома, другой на работе. Оба запущены от одного аккаунта, просто ресурсы разные (к примеру, login@jabber.ru/Home и login@jabber.ru/Work). Безуспешно пытаюсь добавить их в ростер, чтобы, находясь дома, видеть и отправлять сообщения самому себе на работу, и наоборот.

Ответ: С марта 2007 года в транке svn-версии (а стало быть, и в стабильной "десятке" — версии 0.10.0) имеется пункт ростера "Мои ресурсы", где за небольшую плату можно обнаружить все соединения вашего JID. Если по каким-либо причинам вы вынуждены сидеть на более древней версии, читайте дальше.

Проблема решаема, правда, придётся пойти на небольшую хитрость. Впрочем, всё по порядку.

  1. Убедитесь, что открыт только "домашний" Ткаббер, то есть, вы работаете как login@jabber.ru/Home. Если на работе запущен другой, надо бы его сначала прибить.
  2. Добавьте в ростер (в версиях начиная с 0.9.8 он называется "Контакты") пользователя login@jabber.ru/Work. Появится запрос для этого пользователя с просьбой авторизации. Отправьте его, и когда откроется окно редактирования контакта, добавьте его в нужную группу, если надо, но самое главное, не забудьте отредактировать его имя — напишите, к примеру, login/Work.
  3. Разлогиньтесь и залогиньтесь снова как login@jabber.ru, указав теперь в качестве ресурса Work. Это важно — "домашний" аккаунт должен быть закрыт! Заметьте, что, залогинившись, мы не получили запрос на авторизацию. Так и должно быть.
  4. Проделайте шаг 2), на этот раз отредактировав добавляемый контакт как login/Home.
  5. Запустите ещё один Ткаббер и залогиньтесь как login@jabber.ru, указав в качестве ресурса Home. Запрос на авторизацию не пришёл и сейчас. Это хорошо.
  6. Посмотрите в ростеры обоих Ткабберов — теперь "домашний" клиент видит там болтающегося в онлайне login/Work, а рабочий — login/Home. Можно также и слать друг другу сообщения. Если включить показ пользователей, находящихся в оффлайне, вы увидите, что в "домашнем" и "рабочем" Ткабберах "свои" контакты показываются именно находящимися в оффлайне, да ещё в ожидании авторизации. Ещё раз повторяю: так и должно быть.
  7. В зависимости от того, где вы производили эти манипуляции — на работе или дома — закройте соответствующий Ткаббер, с тем чтобы открыть его уже дома/на работе и продолжать пользоваться этим дуэтом в соответствии с потребностями.
  8. Если вы пытались авторизовать какой-либо из этих контактов, пока было запущено оба Ткаббера, вы несомненно должны были получить запрос на авторизацию от другого клиента. Если так оно и случилось, в ростере вы друг друга (сам себя) в онлайне уже не увидите. Придётся удалять их обоих из ростера и начинать сначала.

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

На заметку: Польский коллега desnajpa, в одиночку ковыряющий бедную чернозёмом землю Ткаббера, добился некоторых результатов в плане развития шизофрении у пользователей этого клиента. В его вариации программы — Tkabber-SK — уже имеется self-contact, добавленный в ростер. Тестируйте.

Ввод "хитрых" юникодных символов

Вопрос: У меня стоит русская локаль, следовательно, я не могу вводить в Ткаббере спец-символы вроде акцентов и прочих хитроумных западноевропейских букв. Как-то можно это наладить?

Ответ: Можно, и пока есть три способа сделать это, все довольно неудобные.

Очень неудобный способ

При помощи встроенного плагина unisymbols единичные юникодные символы вводятся в поле редактирования сообщений в следующем формате:

&шестнадцатиричный_код_символаCtrl+;

Это напоминает ввод подобных символов в HTML-коде: &#код_символа; (обратите внимание, что в Ткаббере вводить "решётку" # не нужно). Поясним:

При этом ткаббер заменит вашу конструкцию (включительно, от & до последнего введённого перед нажатием Ctrl-; символа) на соответствующий символ юникода.

Например, &c2;Â.

На заметку: символ ";" находится в основном регистре английской раскладки (то есть вводится простым нажатием на соответствующую клавишу), но в других раскладках её расположение может отличаться. Например, в испанской точка с запятой вызывается нажатием Shift и клавиши запятой. То есть, после набора амперсанда и кода символа надо нажать Ctrl-Shift-,.

Умеренно неудобный способ

Вот ещё один способ попроще. Можно открыть рядом текстовый редактор, поддерживающий юникодные символы (например, Vim, gedit или тот же Word), вбить туда все нужные вам символы и копировать их в поле ввода Ткаббера, когда требуется. Тоже не очень красивое решение, но тем не менее, может пригодиться.

Наименее неудобный способ

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

Ткаббер версии 0.10.0 содержит этот плагин в качестве встроенного средства.