Tkabber Wiki

Tkabber FAQ
Login

THIS PAGE IS BEING TRANSLATED. PLEASE BE PATIENT (OR HELP US IF YOU SPEAK RUSSIAN)

If your problem is not solved here please visit xmpp:tkabber@conference.jabber.ru. If we manage to solve it, the answer will be added here or as a new article of this wiki.

Contents

What is...?

Roster

Answer: Roster is a list of contacts. See definitions of this term found by google.

Resource

When logging in, you can see the Resource field in the Account tab where there is already written something like "Tkabber". What does this mean? According to the Jabber protocol, it is possible to log in to the same account more than once while the Resource of each connection is different. If we connect from different clients they normally put their own resource automatically (for instance, Psi, JAJC, Exodus). Besides, one can edit this field manually, putting, for example, his or her location (home, work, beach, Uncle Tom's hut (non-English alphabet characters are also accepted)).

Priority

The same Account tab of the login window has the Priority field where you can see its default value 8. We need to touch priority when we run more than one client logged in to the same account, for example one at home and another at the work. There is an option of Autoaway you can find in Tkabber → Customize → Autoaway:

plugins::autoaway::options(drop_priority) 1

If it is set to 1, like in our example, then the priority of Tkabber is dropped to zero when it goes to Autoaway. How does this affect its work? The matter is that a Jabber-server sends all messages to the client with the biggest priority, so when we arrive to home from our work, the home client becomes active and receives the biggest priority. All messages sent to username@jabberserver.org (i.e. without a specified resource) will be sent to the home machine. It is quite handy but there is a little drwaback in this system: what happens when both clients have the same priority? It takes you an hour to get home, and Autoaway timeout is merely of 5-10 minutes, so during these first 5-10 minutes the messages will go to the work client, and then, till you get home, to a machine the server likes more. According to rfc3921, in case of the same priorities the server is free to choose a recipient between them. However, this affects only messages.

Tkabber Console

"Консоль Ткаббера" на самом деле является отладочным средством виндовых версий интерпретатора Tcl/Tk (wish), поэтому вызвать её можно только в Ткаббере, запущенном под управлением Windows (про другие ОС см. ниже). Находится она в главном меню: Помощь → Показать консоль.

Командная строка, которую вы получаете, открыв консоль, позволяет напрямую управлять интерпретатором, выполняющим код Ткаббера (!), а также пользоваться широчайшими возможностями, предоставляемыми Tcl для интроспекции выполняемых программ. Обычно именно этого и хотят от вас те, кто предлагает вам открыть консоль Ткаббера. Пара примеров:

Узнать, загрузил ли Ткаббер пакет TkImg:

% package present Img

Выяснить список доступных виндовых кодировок:

% lsearch -all -inline -glob [encoding names] cp125*

Кроме отладки консоль может служить и для многих других издевательств над Ткаббером, о некоторых из которых можно прочитать здесь. Естественно, пользу приносить консоль будет лишь тем, кто ею пользоваться умеет, то есть вам надо иметь в голове некоторый ликбезный минимум по Tcl/Tk.

В юниксовых версиях интерпретатора Tcl/Tk встроенной консоли нет. Нет, соответственно, и описанного выше пункта главного меню Ткаббера. Сей "перекос" объясняется техническими и историческими причинами, изложенными здесь (по-английски), а отладка Ткаббера в "иксах" ничуть не сложнее, чем в Windows, просто здесь следует применять другое средство — tkcon.

Tkcon, в отличие от большинства лекарств, допускает как "внутреннее", так и "внешнее" применение на Ткаббере:

Внимание: виндовая "консоль Ткаббера" имеет один подводный камень: активация пункта её главного меню File → Выход вызывает завершение управляемого консолью интерпретатора (то есть самого Ткаббера). Поэтому закрывайте консоль либо "крестиком", либо повторно активировав соответствующий пункт главного меню Ткаббера. Также, если вам приспичило учинить "хАкЕрСк0е" завершение работы Ткаббера, пишите в консоли "quit", а не "exit", чтобы работа Ткаббера завершилась корректно.

Примечание: ещё одним свойством консоли виндового wish является то, что стандартные потоки ввода/вывода этого процесса по умолчанию "направлены в консоль". Поэтому открыв консоль, иногда можно увидеть там предупреждения (к примеру, возникающие при загрузке пакетов Tcl/Tk.) Так же туда попадает любой отладочный вывод, если вы, скажем, установили в конфиге переменную debug_lvls, но не перенаправили стандартные потоки ввода/вывода в файл или не воспользовались плагином debug.

(TODO: написать статью про tkcon, tkinspect, send, conn, и дать ссылку на неё отсюда)

Visual Appearance And Sounds

Fonts

Question: How could I change font/font size for chat windows and menu items?

Answer: If your OS is Windows, most likely your default config file is badlop-config. Look for the C:\Program Files\Tkabber\tkabber\examples\badlop-config.tcl file and serch it for the following lines:

1024x768 {
           option add Tkabber.geometry =700x520-30+170 userDefault

           # sets font of most of labels in widgets,
           option add *font -monotype-arial-medium-r-*-*-11-*-100-100-*-*-iso10646-1

           # sets font of chat and roster text
           set font -monotype-arial-medium-r-*-*-11-*-100-100-*-*-iso10646-1
               }

This example gives us font options for 1024x768 screen resolution.

option add *font -monotype-arial-medium-r-*-*-11-*-100-100-*-*-iso10646-1

and

set font -monotype-arial-medium-r-*-*-11-*-100-100-*-*-iso10646-1

The first of them manages buttons and other interface elements, the second is for the roster and chat windows. In this example the name of a font is "arial", its size is 11, the coding page is iso10646 (this corresponds to utf-8). Try different variants till you are contented.

Unix-users can adapt this solution for them: copying these lines from badlop-config file /usr/share/tkabber/examples/badlop-config.tcl to the user's config ~/.tkabber/config.tcl or writing their own code based on the given options.

Cannot connect up new smilies sets (sound schemes)

Question: I have edited the config putting there the path to a new smilies set (sound scheme) but they do not work after restarting Tkabber.

Answer: First read the information we have about it. Then make sure the path points exactly to where your files are placed. For example, badlop-config contains the following path: /usr/share/tkabber/emoticons-tkabber (i.e., in Tkabber installing directory). When adding new packs of smilies they are usually put into the user's home directory, in ~/.tkabber/emoticons-tkabber. So note that just adding a new pack's name to the end of the existing path will give no effect.

By the way, since the 0.9.8 version Tkabber does not manipulate sound schemes as a whole. Each event can be assigned any separate wav-file.

How to enter smilies "from a menu"?

Question: I would like to have a small menu that contains all available smilies so that I could choose one by a simple click.

Answer: The Alt-E hotkey will do this perfectly. By the way, this (and many more) hotkey can be found in the Help → Quick help menu of Tkabber.

Notice: There are at least three arguments against this approach:

Can I disable smilies?

Question: Subj. I don't want any smilies, even default ones.

Answer: It's easy. Read this.

Can't see smilies/photos/etc in PNG format

Question: My linux version of Tkabber can't display photos in vcard if they aren't in GIF format.

Answer: Install tkImg.

Color Schemes

Question: I don't like default color scheme. What can I do?

Answer: First try existing schemes, you can find them in examples. Read this about how to enable them. If you do not like any of them try to create your own scheme. Open one of these .xrdb files in your favourite text editor, save it with a new name and make changes until the result pleases you :) Add the path to this file to your config.tcl, and after starting Tkabber you will see what and where is changed. Yes, it is very difficult to "paint" without a WISIWIG editor but at least you can use Photoshop or The Gimp to choose colors and get their hex-values ;) If you are a tcl programmer you can write a plugin that allows to create new color schemes easily, and everybody will thank you!

Поддерживает ли Ткаббер аватары?

Вопрос: Вот JAJC с аватарами работает превосходно — и подключает, и показывает собеседникам в систрее. Ткаббер так умеет?

Ответ: Систрей для Ткаббера — ахиллесова пята :) Но аватары он поддерживает. Читайте об этом в отдельной статье.

Альтернативное и готовое решение под Windows — скачать старпак ткаббера 0.9.9, собранный Архимедом. Процитируем автора:

В окно chat добавлен показ аватара собеседника (hack from badlop). По умолчанию эта возможность выключена (по настоянию kostix и teo). Включается через настройки в разделе Chat.

Этот старпак выложен тут: http://prikhodko.googlepages.com/tkabber

Понятно, что интересующиеся пользователи других ОС могут вынуть изменённый chat.tcl из старпака и использовать его по прямому назначению.

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

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

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

Регулировка громкости звука

Вопрос: Можно ли в Ткаббере регулировать громкость звука?

Ответ: Да, и даже несколькими способами. Почитайте подробно в этой статье.

Problems Arising During Work

This section will help you in solving non-standard behaviour of Tkabber in standard situations.

Долгая загрузка Ткаббера

Вопрос: Ткаббер жутко долго грузится. Поначалу я даже думал, что он виснет на старте, но как-то раз набрался тепрения и дождался. Потом работает нормально.

Ответ: Посмотрите внимательно, что при этом показывает прогресс-бар сплэш-скрина. Если на нём застыли слова "пользовательский интерфейс", то возможно, дело вот в чём. Если у вас включено кэширование новостей, а самих новостных фидов в ростере — вагон и маленькая тележка, то через некоторое время общее число сообщений может с лёгкостью перевалить за несколько сотен. Естественно, чтобы все их подгрузить из файла, требуется время. Решений несколько: 1) отключить кэширование, тогда при закрытии программы новости, которые вы не успели прочитать, пропадут; 2) избавиться от лишних очень активных фидов или хотя бы просматривать и удалять вручную большие списки новостей перед закрытием программы; 3) смириться с долгой загрузкой или перегружаться как можно реже; 4) проапгрейдить компьютер; 5) оптимизировать код. Выбирать вам :)

Пересылка файлов

Вопрос: Так работает в Ткаббере пересылка файлов или нет? Мы с другом пробовали сто раз через все доступные протоколы, и ничего не шлётся.

Ответ: Для начала почитайте введение, также в сжатой форме это объяснено в официальной документации Ткаббера (разделы 4.2.12. The Stream Initiation Module и 4.2.13. The Jidlink Module):

Практическая же реализация (для большинства, но не всех случаев) такова.

Зайдите в Настройки → File Transfer и затем по очереди в Jidlink и SI. В Jidlink включите опцию

::ft::ftjl::options(enable)

и отключите

::jidlink::transport(allowed,dtcp-passive)

оставив ::jidlink::transport(allowed,dtcp-active) и ::jidlink::transport(allowed,inband-bytestream).

В SI отключите

::si::transport(allowed,http://jabber.org/protocol/bytestreams)

и оставьте

::si::transport(allowed,http://jabber.org/protocol/ibb)

Не забудьте сохранить каждую изменяемую опцию для следующих сессий. Если всё равно не работает, перечитайте ещё раз теорию (ссылка в начале ответа).

Шифрование в Ткаббере: проблемы с gpgme/tclgpgme

Вопрос: Что-то не могу скомпилировать tclgpgme.

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

  1. Под Windows шифрование работать не будет.
  2. Под Linux — в зависимости от дистрибутива:
    • В Debian в стабильной ветке всё работает без излишних телодвижений (правда, что там будет в Etch'е — не ясно);
    • В rpm-based дистрибутивах проблема пока не исследована (даже неизвестно, есть ли она);
    • В source-based дистрибутивах проблема, возможно, решится благодаря следующему совету.

[xmpp:pachkov@jabber.ru](xmpp:pachkov@jabber.ru) рассказывает:

Решил проблему с шифрованием в Ткаббере (под Slackware). Проблема была в том, что tclgpgme под Слакварью собирается, но не работает (с gpgme версий 0.3.13 и 0.3.16). Дело в том, что скрипт configure в tclgpgme не находил gpgme-config. Я просто определил переменную в скрипте после проверок, и всё заработало.

Приведём этот патч на configure тут, дабы идея была понятна:

--- configure   2002-09-25 21:49:46.000000000 +0200
+++ myconfigure 2006-07-12 09:44:17.000000000 +0200
@@ -1868,7 +1868,6 @@
 esac
 fi
 GPGME_CONFIG="$ac_cv_path_GPGME_CONFIG"
+GPGME_CONFIG="/usr/local/bin/gpgme-config"
 if test -n "$GPGME_CONFIG"; then
   echo "$ac_t""$GPGME_CONFIG" 1>&6
 else

То есть просто добавлено прямое присваивание переменной GPGME_CONFIG:

GPGME_CONFIG="/usr/local/bin/gpgme-config"

ниже того кода, который должен эту переменную вычислять, но не делает это по какой-то причине. Естественное уточнение: пишите путь до gpgme-config на вашей системе.

Проблема с новым релизом Ткаббера 0.9.9-1.2

Вопрос: Поставил новую версию Ткаббера под Дебиан. Версия 0.9.9-1.2. Обновил также и tcllib до 1.8. В результате Ткаббер после логина зависает и ни на что не реагирует, даже не загрузив Контакты.

Ответ: Поставьте пакет ceptcl, который рекомендует apt-get. Проблема в том, что ваш dns-сервер не поддерживает tcp-запросы, а ceptcl добавляет udp. Обычно dns-сервера провайдеров не запрещают запросы по tcp, но видимо, кое-где (например, в Испании) это не так.

Если не хочется устанавливать дополнительные пакеты, можно попробовать как вариант отметить на второй вкладке Соединение окна логина галочку Явно указать адрес и порт для подключения, ну и явно их указать.

(thanks to teo за информацию)

Ткаббер под X Window падает при попытке показать "странные" символы

Вопрос: Ткаббер под X Window падает при попытке показать "странные" символы (вроде этого: "•") с ошибкой:

X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 45 (X_OpenFont)
...

Ответ: Причина может быть либо в "кривых" шрифтах, которые стоят у вас в системе, либо в "кривизне" сервера шрифтов, либо в "кривизне" X-сервера, который сам "раздаёт" шрифты.

Подробнее читайте тут.

Не работает вставка по Control-v под X Window

Вопрос: В многострочных полях ввода не работает вставка текста из буфера обмена, помещённого туда по Control-c (и другим комбинациям).

Ответ: В текущих стабильных версиях Tk комбинация <Control-KeyPress-v> в многострочных полях ввода (Tk-виджет "text") привязана к Emacs'овскому действию "прокрутить вниз на полстраницы".

Этот баг официально зарегистрирован под номером 605277 (см. багтрекер Tk на http://tcl.sourceforge.net).

Баг исправлен давно, но только в версиях, относящихся к 8.5. Для исправления проблемы в 8.4.x есть два способа:

Это "отвязывает" Control-v от виджета text и восстанавливает его "более общую" привязку к виртуальному событию <<Paste>> (вставка текста из буфера обмена), которое, в свою очередь, также привязано к Control-v.

Огромное спасибо тиклевому хакеру Joe English за информацию, исправление бага в Tk и предложение "костыля" для Ткаббера.

P.S. Кстати говоря, под "иксами" в Tk-приложениях вставка из буфера всю жизнь прекрасно работала по Control-y.

Tkabber постоянно держит меня в состоянии "отошёл" ("away")

Вопрос: Запускаю Ткаббер и он тут же переходит в состояние "отошёл". Установка руками любого другого статуса тут же обратно меняется Ткаббером на всё тот же "отошёл". Что делать?

Ответ: Причина проста — начиная с версии 0.9.8 в настройках Ткаббера поменялся формат времени, задаваемого для запуска Autoaway. В версиях Ткаббера до 0.9.7 включительно время неактивности пользователя до перехода в состояния "отошёл" и "отошёл давно" задавалось в миллисекундах (стандартная единица измерения временных промежутков для тикля). Начиная с версии 0.9.8 эти интервалы начали задаваться в более логичных единицах измерения — минутах. То есть "новые" версии Ткаббера умножают эти временные интервалы на 60000, чтобы перевести минуты в "тиклевые" миллисекунды. Если происходит неприятность — Ткаббер версии >= 0.9.8 запускается с файлом конфигурации от версии <= 0.9.7, — заданные в конфигурации миллисекунды переводятся... в миллисекунды! Получаются огромные числа, переполняющие 32-битное целое со знаком, и Ткаббер начинает считать, что получившийся интервал времени истёк. Иллюстрация (можете повторить сами в консоли Ткаббера, wish или в tkcon):

% puts [expr 600000*60*1000]
1640261632
% puts [expr 600000*120*1000]
-1014444032

То есть, при тайм-ауте в одну минуту всё бы было хорошо, но как только мы ставим две минуты, появляется ошибка. Модуль Autoaway сравнивает текущее время неактивности со значением тайм-аута, и если тайм-аут меньше, Ткаббер переводится в режим "Отошёл". Как видите, при тайм-ауте две минуты и больше Ткаббер всегда будет считать, что мы "отошли".

Такая проблема существует, в частности, в официальном Ткаббер-паке под Windows версии 0.9.8.

Решение: Достаточно пойти в настройки плагина AutoAway (Tkabber → Настройки → AutoAway) и установить там параметры plugins::autoaway::options(awaytime) и plugins::autoaway::options(xatime) в некоторое разумное количество минут.

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

В старпаке/старките нет звука

Вопрос: В старпаке (или старките) не работает звук. Его включение/выключение ни к чему не приводит. Что делать?

Ответ: Статья о решении этой проблемы перенесена сюда.

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

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

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

Не могу приконнектиться к серверу через прокси

Вопрос: Не могу приконнектиться к серверу через прокси (аська работает).

Ответ: Скорее всего, проблема в том, что ваш прокси-сервер не пропускает соединения методом CONNECT на порты, отличные от 443 (HTTPS), а Jabber-сервер обычно принимает соединения на порты 5222 (поддерживается "plaintext" (соединение без шифрования) и протокол STARTTLS, позволяющий использовать SSL) и 5223 (SSL).

Что предпринять:

Пользователи сервера jabber.ru имеют несколько дополнительных опций благодаря тому, что вокруг этого сервера построена дополнительная "обвязка":

Эти имена хостов и порты следует вводить в поля "хост" и "порт", соответственно, настройки "Явно указать адрес и порт для подключения".

(Информацию про jabber.ru нечаянно сболтнул xmpp:sgolovan@nes.ru)

Дополнительная информация про HTTP-poll:

Для того, чтобы подключиться к серверу по HTTP-poll, нужно знать URL для отправки HTTP-запросов. Есть два источника подобной информации:

Понятно, что в случае сервера, отличного от jabber.ru, доменная часть "псевдо-имени хоста" _xmppconnect.jabber.ru должна быть другой (например, _xmppconnect.my.cool.server.org).

Эта команда должна вернуть строку, содержащую URL для подключения, например, для jabber.ru возвращается "_xmpp-client-httppoll=http://httppoll.jabber.ru". В настройках, соответственно, следует указать URL http://httppoll.jabber.ru. Естественно, для другого сервера URL будет другим.

Примечание:

Для работы с TXT-записями в DNS Ткабберу требуется наличие в системе библиотеки tcllib версии 1.7 и выше, а для работы с SRV-записями — 1.8 и выше. Реально, значение имеет версия пакета dns в библиотеке tcllib: поддержка SRV-записей появилась в версии 1.2.1 пакета, поддержка TXT-записей — в версии 1.1.8, но имела баг, который был исправлен в версии 1.3.1. Узнать версию пакета dns, доступную Ткабберу, можно, выполнив в консоли Ткаббера (или в tclsh, wish, tckon) команду

package versions dns

(За информацию про DNS TXT-записи, о HTTP-poll и за разъяснение ситуации с версиями пакета dns — отдельное спасибо тиклевому хакеру Pat Thoyts.)

Keep alive в Ткаббере — возможно ли?

Вопрос: Psi и Gajim умеют не разрывать соединение или же пересоединяются к серверу при разрыве связи. Ткаббер вроде бы этого не делает. В чём проблема?

Ответ: точный ответ на этот вопрос затруднён несколькими обстоятельствами:

(TODO: расписать подробно)

Пока что почитайте вот этот трёп между Kostix и j-dreamer:

(TODO: вынести этот чатлог в отдельную страницу, облагородив, т.е. он со временем отэкспайрится и будет удалён на сервере)

How Do I Do...?

Some non-obvious tricks will be explained here.

Отправка сообщений по Ctrl-Enter

Вопрос: Можно ли сделать так, чтобы сообщения отправлялись по нажатию Ctrl-Enter, а перевод строки происходил по нажатию Enter, как это сделано в Miranda и других мессенджерах?

Ответ: Можно. Вам сюда.

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

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

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

  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, добавленный в ростер. Тестируйте.

Одновременная работа с несколькими аккаунтами

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

Ответ: 1) Да. 2) Нет.

Теперь подробнее.

  1. Сначала логинитесь как обычно, затем снова жмёте Ctrl-L ещё раз и в окне логина идёте на вкладку "Соединение" и убираете галочку "Закрыть открытые соединения", если она отмечена. Затем либо вводите в первой вкладке новые параметры логина, либо выбираете их, нажав кнопку "Профили". Чтобы было из чего выбирать, сначала нужно подредактировать раздел логина в файле конфигурации. После логина в ростере под первым аккаунтом появится второй. Работа с двумя аккаунтами ничем не отличается от обычной, надо только помнить о таких вещах как отправка сообщений, добавление пользователей в контакты и прочие, что имеются в меню Ткаббера Службы. При выполнении этих действий у вас появляется окошко, где помимо прочих имеется раскладное (drop-down) меню, которое называется либо "Соединение", либо "От кого", где можно выбрать аккаунт, от имени которого вы будете эти действия совершать.
  2. Если работа с несколькими аккаунтами протекает вполне нормально, то вот автоматически логиниться к ним всем, похоже, нельзя. Во всяком случае, на сегодняшний день это не реализовано. И не будет реализовано, пока кто-нибудь сильно не захочет и не напишет ;)

Как насчёт автозахода на конференции?

Вопрос: Надоело каждый раз заходить в десяток комнат. Можно ли это дело автоматизировать?

Ответ: Начиная с версии 0.9.8, Ткаббер умеет хранить признак автозахода в комнату вместе с самой комнатой в списке контактов.

Добавьте комнату в список контактов одним из двух способов:

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

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

Вполне естественно, что автозаход можно настроить и через конфиг (для версии 0.9.7 и старше это вообще единственная возможность). Как водится, всё уже сделали до нас, осталось только разыскать решение. Надеюсь, вы не обидитесь, если на этом примере я научу вас пользоваться гуглем ;) Когда ищешь что-нибудь в этом самом гугле, главное — правильно задать вопрос. В данном случае ключевые слова: tkabber, autojoin, conference. Первый же результат поиска убивает нам двух зайцев, так как содержит ссылку на частный случай.

Сжатие трафика в Ткаббере

Вопрос: В "фичах" версии 0.9.9 написано, что в этой версии реализована поддержка сжатия трафика. Как это осуществить на практике?

Ответ: Для включения сжатия вам потребуется установить пакет ztcl (если вы работаете в Дебиане, можете установить ztcl из репозитория Сергея Голованя aka teopetuk ([xmpp:sgolovan@nes.ru](xmpp:sgolovan@nes.ru)): найдите ниже вопрос про репозиторий и действуйте в соответствии с инструкциями). Установив пакет, перезапустите Ткаббер. При этом в окне логина закладка SSL будет называться теперь SSL & Сжатие. Идите туда и отметьте галочку "Сжатие". Учтите, что нельзя одновременно включить и сжатие, и шифрование, поэтому мы не рекомендуем пользоваться сжатием без крайней нужды — очень дорогого трафика. Помните, что при передаче файлов сжатие будет возможно лишь при использовании inband bytestream — без разницы, в SI или в Jidlink, — так как лишь в этом случае файлы шлются через сервер. Подробнее о пересылке читайте тут.

На заметку: частично уменьшить трафик (и сильно обезопасить приватные разговоры) можно, используя шифрование с помощью gpg. Gpg при шифровании сжимает данные (конечно, в случае, если их можно сжать и zip'ом, то есть, обычный текст). Естественно, ваши собеседники тоже должны пользоваться gpg или pgp.

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

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

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

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

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

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

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

Ответ: Можно, но способ этот крайне неудобен в практическом плане. Единичные юникодные символы вводятся в поле редактирования сообщений в следующем формате:

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

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

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

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

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

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

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

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

Ответ: В спецификациях MUC (Multi-User Chat) игнорирование не заложено. Если комната полуанонимная, то не-администраторы не видят JID участников — только ники. Игнорировать по нику смешно, но лучше что-то, чем ничего. Как это можно сделать? Сообщения из комнат приходят от джида комнаты. Сообщения от присутствующих там — в виде джида комнаты с ресурсом, который является ником автора сообщения. То есть сообщение от пользователя 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 участников. Может показаться, что теперь игнор будет работать лучше, но это не так. Если внести в список игнорирования только JID, мы перестанем получать персональные сообщения, но сообщения, отсылаемые им в конференцию, а также в приват с вами, организованный через конференцию, будут вам видны. Вывод: для игнорирования в комнатах годится только описанный выше формат.

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

Подтверждения

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

Ответ: Проблема решена. Скачайте соответствующий плагин. Заодно Ткаббер станет спрашивать у вас, в своём ли вы уме, закрывая такую продвинутую программу ;-P

Удалённое управление

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

Ответ: Ещё как. Курите теорию.

Но, если после прочтения вы не прониклись мощью tcl/tk и команды send, то версия из SVN поддеживает JEP-0146 Remote Controlling Clients. Управление производится через диско-браузер. Откройте его, введите свой полный jid с ресурсом в поле "JID", и вы увидите пункт "Удаленное управление", а дальше как обычно. Обратите внимание, что по-умолчанию доступ к управлению разрешен только jid-ам, у которых базовая часть без ресурса совпадает с такой же частью jid-а управляемой машины. Если вам нужно больше, посмотрите настройки.

Команды Ткаббера

Вопрос: Как можно по-быстрому глянуть версию клиента и OS собеседника? Вообще, какими командами располагает Ткаббер и как ими пользоваться?

Ответ: Наберите /version nick. Даже когда в комнате есть бот, умеющий запрашивать версии, предпочтительней пользоваться такими вот командами, чтобы не захламлять окно разговора ненужной другим информацией. Чтобы узнать другие команды, наберите прямой слэш / и понажимайте табуляцию — Ткаббер начнёт перебирать все доступные ему команды (kick, ban, unban, vcard и так далее). Учтите, что если у вас установлен плагин socials, то тогда при переборе команд появится и куча социалов типа howl, applaud и прочих. Кстати, если нажимать табуляцию при пустой строке ввода, в ней начнут сменяться ники обитателей комнаты. И напоследок ещё одна фишка: если ткнуть мышью в окне чата или в списке участников в ник, он тоже появится в строке набора сообщения — весьма полезно для особо навороченных ников.

Скрытие версий клиента и ОС

Вопрос: Я параноик (работник ФСБ, ЦРУ, спецагент-фрилансер, **вставьте свой вариант), и меня напрягает, что Старший Брат (ЦРУ, ФСБ, злой хацкер, вставьте свой вариант) может узнать, какая у меня система, и потом хакнуть в тёмном переулке.**

Ответ: Нет ничего проще: Tkabber → Настройки → IQ. Там есть где развернуться:

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

Вопрос: как подключить плагин к ткабберу?

Ответ: прочитайте первые два раздела здесь.

Как уменьшить трафик?

Вопрос: как уменьшить передаваемый/принимаемый Ткаббером трафик (у меня дорогой интернет)?

Ответ: прочитайте Low traffic HOWTO.

Miscellaneous

Что случилось с сайтом http://sgolovan.nes.ru/ ?

Хочу установить кое-какие пакеты, которые имеются только в его репозитории, но вот уже который день он "в дауне" :( Да и статья там была хорошая про Ткаббер и Windows.

Ответ: 5 августа 2006 года. Тео вернулся, сайт работает.

На данный момент (конец июля — начало августа 2006 года) сайт закрыт в связи с реконструкцией. Когда он заработает снова, мы пока не знаем (а как узнаем, сообщим), однако можем сказать, что существует зеркало репозитория:

http://sgolovan.jabber.ru/debian/

Вписывать в /etc/apt/sources.list так:

# Sarge:
deb     http://sgolovan.jabber.ru/debian/ sarge main
deb-src http://sgolovan.jabber.ru/debian/ sarge main

# Woody (old-stable, скорее всего вам не нужен):
deb     http://sgolovan.jabber.ru/debian/ woody main
deb-src http://sgolovan.jabber.ru/debian/ woody main

По поводу статей — придётся вам подождать, пока сайт не возобновит работу. На зеркале имеется только репозиторий. Самая Главная Статья, впрочем, доступна на этой вики: Tkabber Windows Mini HOWTO

...а мне ИГРАТЬ охота!!!

Вопрос: Слышал я, что в Ткаббере можно играть в шахматы, шашки и т.д. Где мне найти соперников, а то из друзей никто не играет?

Ответ: Ещё как можно. Для начала вам надо установить игровые плагины. А если не с кем играть, добро пожаловать в [xmpp:tkabber-games@conference.jabber.ru](xmpp:tkabber-games@conference.jabber.ru) — чем больше народу будет там тусоваться, тем больше шансов найти себе соперника по силам.

Владелец комнаты xmpp:agnessa@jabber.ru, по всем вопросам касательно этой комнаты обращайтесь к ней.

Старые версии Ткаббера и плагинов

Вопрос: Где я могу скачать сабж?

Ответ: На сайте jabberstudio.org имеются все стабильные версии Ткаббера и плагинов, начиная с 0.9.4.

Questions related with XMPP

MUC

Не работают инвайты

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

Ответ: Для начала вам надо удостовериться, что вы в этой конференции имеете ранг, отличный от "никто" (none): например, "участник" (member), "админ" (admin) или "владелец" (owner). Если ваш статус — "никто", приглашение в эту конференцию послать вам не удастся при любом раскладе. Если же вы "участник", а приглашения всё равно не отсылаются, узнайте у владельца комнаты, включена ли опция "разрешать пользователям слать приглашения" в её конфигурации. Если опция включена, а инвайты всё равно не уходят, обратите внимание на то, каким способом вы шлёте инвайт. При тестировании было замечено, что приглашения, отправленные через меню комнаты (вызываемое при клике на кнопку "Тема" в верхней части окна чата), не отсылаются. Зато прекрасно работают приглашения через контекстное меню участника конференции (правый клик на нике в списке конфы) и через контекстное меню ростера (при условии, что приглашаемый находится у вас в ростере, естественно). Ещё можно попробовать такой способ: набрать /invite vasya@jabber.pupkin.ru в конференции, куда вы хотите Васю пригласить. Само собой, вам должен быть известен JID приглашаемого.

Если с отправкой приглашения ничего не получается, даже если вы хозяин комнаты и приглашаете в неё пользователя, который сидит у вас в ростере, смело идите в [xmpp:tkabber@conference.jabber.ru](xmpp:tkabber@conference.jabber.ru) и рассказывайте, что и как. Однако перед тем как туда идти, советуем ознакомиться с соответствующим XEP'ом по MUC (анг.), хотя бы с главами 4. Terminology и 5. Roles and Affiliations. И, думаем, не стоит и напоминать, что всё это касается лишь пользователей джаббера. То есть если вы непонятно почему приглашали в комнату айсикушников, то, как говорится, вы сами себе злобный Буратино ;)

TODO: Перевести эти две главы и воткнуть сюда на вики отдельной статьёй. И потом ссылаться, соответственно, уже на этот перевод.

UPDATED: Последние исследования вопроса показали несостоятельность теории ролей. Посетитель комнаты, являющийся в ней member'ом, не мог отсылать инвайты другим её посетителям. Не отчаивайтесь, работы продолжаются.