Tkabber Wiki

Ткаббер ЧаВо/Как мне...?
Login

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

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

Содержание

А как мне...?

Настройка Ткаббера (Не найду файл config.tcl)

Вопрос: Как настроить Ткаббер? У меня есть файл custom.tcl, но нет config.tcl. Где он болтается?

Ответ: Если у вас нет файла config.tcl, а он вам до зарезу нужен, создайте его. Не знаете, в каком каталоге его создавать и что в него писать? Читайте вот эту вводную статью.

Как настроить "автологин"?

Вопрос: Как научить Ткаббер автоматически подключаться к серверу после старта и логиниться с моей учётной записью?

Ответ: Сделать это можно только ковырянием в файле конфигурации Ткаббера путём установки в нужное значение переменной autologin таким образом:

set autologin <value>

Согласно официальной документации, допустимые значения этой переменной и производимый ими эффект таковы:

-1

Запуститься, не подключаться автоматически и не показывать окно логина.

0

Запуститься, не подключаться автоматически и показать окно логина. Это — поведение по умолчанию.

1

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

Помните: чтобы автологин работал, нужно, чтобы Ткаббер на момент его активации имел полную информацию относительно вашей учётной записи (JID, пароль, ресурс), а также параметров подключения к серверу (прокси-сервер, SSL/сжатие и т.д.). Посему она должна быть либо введена и сохранена "для этой и последующих сессий" на соответствующей странице формы настроек (в главном меню: Tkabber → Настройки → Login), либо определена в конфиге в виде массива loginconf в соответствии с всё той же официальной документацией (см. ссылку выше). Следует также помнить, что теперь ваш логин-пароль будет храниться в незащищённом текстовом файле. Воспользуйтесь плагином CryptoConfig, чтобы спать спокойно.

Примечание: см. также про автологин с несколькими аккаунтами.

Работать с RSS

Вопрос: Я в Ткаббере (и вообще в Джаббере) новичок, и никак не пойму, как работают новости. Добавить-то их несложно, а потом возникает куча вопросов.

Ответ: Да, мы заметили, что возникает куча вопросов, и уже обновили статью "Начинающим", которую вы, надеемся, прочитали. Что же конкретно до случая с RSS, то можете идти прямиком в соответствующий её подраздел.

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

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

Ответ: Можно. На данный момент есть два способа сделать это:

Примечание: Просить разработчиков добавить "опцию для включения отправки по <Ctrl-Enter>" — бессмысленное дело: подход Ткаббера (<Shift-Enter> — перевод строки + <Enter> — отправка) оптимизирован на быструю отправку коротких простых сообщений (как в большинстве IRC-клиентов). Переучиться с другого IM-клиента очень просто. А когда речь заходит о "хочу как в ...", сразу возникак вопрос: а сколько таких программ и привычек? Посему страждущим и предлагается использовать широчайшие возможности Ткаббера по допиливанию себя, освещённые в соответствующей статье.

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

Вопрос: Как навесить отправку сообщений на Enter с цифровой клавиатуры?

Ответ: Вот вариант, предложенный teo.

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

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

Ответ: 1) Да. 2) Да, нештатными средствами.

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

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

Одна из возможных реализаций множественного автологина:

  1. сделать несколько записей в разделе логина в файле конфигурации и убедиться, что они работают;
  2. добавить хук, который будет отрабатываться после загрузки приложения, но после нормального автологина:

    hook::add finload_hook {
        login [eval list [array get ::loginconf] [array get ::loginconf2]]
        login [eval list [array get ::loginconf] [array get ::loginconf3]]
    } 10000
    

Убедившись, что всё работает, можно отключить штатный автологин (set ::autologin -1) и сделать все автологины единообразно, добавив соответствующие строчки в этот хук.

Не забывайте, что теперь ваш логин-пароль будет храниться в незащищённом текстовом файле. Воспользуйтесь плагином CryptoConfig, чтобы спать спокойно.

Примечание: см. также про настройку автологина.

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

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

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

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

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

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

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

Начиная с версии где-то между 0.9.9 и 0.10.0 в Ткаббер встроено сохранение сессий (меню Tkabber → Состояние). Учтите, что сессии сохраняются только локально, поэтому после запуска Ткаббера на другой машине у вас автоматически загрузятся только конференции, настроенные, как описано выше.

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

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

Ответ: Потребуется установить два пакета Tcl или — в Windows — перейти на использование дистрибутива "Tkabber-Pack". Подробно об этом рассказано здесь.

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

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

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

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

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

Короткий ответ: Можно. Службы → Плагины → Настройки KHIM

Длинный ответ: для ввода символов, отсутствующих на клавиатуре, есть два способа, реализованных в Ткаббере, а также можно воспользоваться средствами операционной системы.

К средствам Ткаббера относятся:

Средства операционной системы:

(Внимание! Символы "(" и ")" здесь означают группировку и не вводятся непосредственно.)

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

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

Ответ: В спецификациях MUC (Multi-User Chat) игнорирование не заложено, однако начиная с версии 0.10.0 в Ткаббере реализована поддержка игнорирования участников конференций на стороне клиента.

Управление игнорированием доступно в контекстном меню ростера групчата: подменю Игнорирование содержит два флага, один из которых управляет ингнорированием сообщений помещаемых данным лицом непосредственно в конференцию, а второй — игнорированием сообщений, направляемых им же вам "в приват" данной комнаты. Установка обоих флагов означает полное игнорирование участника.

Механизм игнорирования автоматически учитывает смену "ника" игнорируемым участником комнаты, а также его входы и выходы из комнаты (правда, если они делаются под одним и тем же ником, см. ниже). Правила игнорирования сохраняются при помощи механизма настроек Ткаббера.

Однако, данная реализация имеет некоторые ограничения как вследствие особенностей спецификации MUC, так и вследствие того, что она не имеет отношения к "спискам приватности" (которые обрабатывает сервер). Ограничения таковы:

Подробнее о внутренностях обсуждаемого механизма написано тут.

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

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

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

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

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

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

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

Также доступно несколько неофициальных плагинов, расширяющих эту фунцкиональность.

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

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

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

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

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

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

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

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

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

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

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

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

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

Ответ: У нас есть сведения, что Ткаббер подключался к компрессору toonel.net. Скачайте, почитайте доку и запустите программу, а в настройках Ткаббера укажите соединение через прокси (localhost:8080).

Самостоятельная сборка Старпака

Вопрос: Научите разбирать и собирать Старпак.

Ответ: Читайте эту статью.

"Быстрый" Copy/Paste помимо буфера Windows

Вопрос: Как можно копи-пасте делать не в буфер Windows?

Короткий ответ: Поставить линукс, полагаю. © teo

Точный ответ зависит от того, что же действительно имелось в виду: копирование без затрагивания буфера обмена Windows или "быстрое" копирование — без использования двух сложных действий.

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

Такой стиль копирования/вставки в Ткаббере можно обеспечить двумя способами:

  1. Под Windows, в пределах одного и того же Tk-приложения (то есть, в нашем случае, — Ткаббера) такой механизм копирования/вставки работает без дополнительных телодвижений (кстати, как и в mIRC — известном виндовом IRC-клиенте).
  2. "Глобальным" решением для Windows является установка TXMouse. Эта микроскопическая программка реализует:
    • "Иксовое" копирование средней кнопкой в любых программах (учтите, однако, что это копирование производится через буфер обмена (клипборд) Windows, перезаписывая его содержимое, то есть стопроцентной эмуляции "иксов" с двумя клипбордами не получится);
    • Модель поведения фокуса, известную как "sloppy focus":
      • фокус следует за указателем мыши, но только при переходе из одного окна приложения в другое; при переходе из окна приложения на рабочий стол фокус сохраняется на окне приложения;
      • щелчок любой кнопкой мыши в рабочем пространстве окна (то есть не на декорациях) не вызывает перенос этого окна на вершину стека окон.
    • Щелчок правой кнопки мыши на декорациях окна посылает окно на дно стека окон.

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

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

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

Затем идите в Настройки → Plugins → Ispell и там проверьте, соответствует ли действительности путь к исполняемому файлу ispell (для *nix это обычно /usr/bin/ispell).

Ещё вам необходимо указать, какой словарь вы собираетесь использовать, а также его кодировку:

Опцию ::plugins::ispell::options(check_every_symbol) лучше не трогать, ибо она сильно загрузит ваш процессор ненужными проверками недописанных слов на каждой новой букве.

Не забудьте сохранить изменённые настройки для будущих сессий.

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

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

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

Упдате: по сведениям наших агентов из FreeBSD и Gentoo, на этих системах Ткаббер с aspell вполне себе дружат. Параметры для ::plugins::ispell::options(command_line) такие: -d ru. В aspell можно подключить несколько словарей путем объединения их в один следующим образом:

cd /usr/lib/aspell
grep '^special' en.dat >>ru.dat
aspell dump master en >w.en
aspell dump master ru-yo >w.ru
cat w.ru w.en >w.all
aspell --lang=ru --encoding=UTF-8 create master ruen.rws < w.all
rm -f w.ru w.en w.all
echo "add ruen.rws" > ru.multi

А еще можно использовать пакет ispell-aspell с опцией -a.

Упдате-2: На Windows XP, Vista, Seven — тоже всё прекрасно работает. Настройки такие же. Взять этот aspell и, например, этот RU-словарь к нему. Не забыть прописать путь к бинарнику в параметре ::plugins::ispell::options(executable): c:\Program Files\Aspell\bin\aspell.exe и указать кодировку koi8-r.

Апдейт-3: Существует программа проверки орфографии на лету, которая работает с несколькими словарями одновременно, и может быть безболезненно подключена к Ткабберу. Она называется hunspell, в большинстве дистрибутивов Linux ее можно установить, воспользовавшись пакетным менеджером, например в Debian команда

apt-get install hunspell hunspell-ru

установит сам hunspell и словарь русского языка к нему (словарь английского языка устанавливается по умолчанию). Теперь прописываем настройки плагина:

set ::plugins::ispell::options(executable) /usr/bin/hunspell
set ::plugins::ispell::options(command_line) "-d ru_RU,en_US"

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

Как перенести ростер с сервера на сервер? Импортировать контакты ICQ?

Вопрос: как можно "перетащить" список контактов при "переезде" с сервера на сервер?

Вопрос: как получить список контактов с сервера ICQ?

Простого решения на уровне XMPP не существует для обоих случаев. Также для Ткаббера нет никаких (известных нам) утилит импорта списков контактов из других клиентов систем быстрого обмена сообщениями.

Однако, есть несколько подходов к решению проблемы:

Можно экспортировать список контактов в файл, будучи подключённым к первому серверу, затем импортировать его, подключившись ко второму серверу.

При этом обычные контакты (пользователи) "переезжают" без каких-либо усилий, так как их JID'ы не зависят от Вашего сервера. Однако, после этого обязательно нужно переподписаться на получение присутствия от Ваших контактов. Это нужно сделать потому, что серверы Ваших контактов не знают о том, что Вы сменили свой сервер. Обратное также верно — Ваши контакты скорее всего захотят взаимно подписаться на получение информации о присутствии Вашего нового JID.

Запрос на подписку можно либо инициировать для каждого контакта по очереди (опция "Переподписаться" контекстного меню контакта), или инициировать "массовую переподписку", активизировав опцию "Переподписаться ко всем пользователям в группе..." контекстного меню группы списка контактов).

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

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

"Переезд" гейтуемых контактов (ICQ, MSN и прочих) несколько сложнее и может потребовать ручной работы. Это происходит из-за того, что эти контакты зависят от соответствующей службы-гейта сервера и имеют "синтетические" JID'ы, также зависящие от JID'а соответствующей службы.

Для начала нужно решить: а хотите ли вы вообще менять гейт? Многие гейты позволяют работать с ними пользователям с произвольных серверов (а не только с того, который управляет гейтом). Если всё-таки хотите, то последовательность действий примерно такая:

Ещё один возможный способ, который может помочь при "переезде", — использование службы "Jabber Roster Utility" (JRU), которая также есть тут и тут. Обязательно прочитайте приложенные HOWTO перед началом использования.

Помочь в переносе контактов из аськи на гейт через JRU может помочь этот ЧаВо.

Для получения статусных сообщений от гейтуемых контактов может потребоваться переподписка на присутствие (в JRU все контакты добавляются с запросом подписки).

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

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

Ответ: В Ткаббере реализован браузер истории разговоров. Подробности изложены здесь.

Указать причину кика/бана

Вопрос: Как ввести причину кика или бана? В контекстном меню ничего на эту тему нет, а через команду никак не вводится.

Ответ: В контекстном меню, действительно, на эту тему ничего нет, а вот через команду сделать это легко, хоть и не вполне очевидно. Причина вводится с новой строки. Перейти на новую строку можно, нажав Shift-Enter.

/kick nick
reason
/ban nick
reason

Учтите, что модераторы и прочее "начальство" имеют к этим процедурам автоматический иммунитет. Чтобы применить наказание, надо сначала человека "разжаловать".

Примечание: возможно создать собственное подменю в меню ростера комнаты, позволяющее "кикать" участника, используя одну из заготовленных причин. О том, как его сделать, рассказано тут.

Блокировать спам с MRIM-гейта

Подробно и с картинками об этом рассказано здесь.

Конфигурирование конференции

Вопрос: Никак не найду, "где у него кнопка"

© "Приключения Электроника"

Ответ: Ткаббер — это на самом деле не клиент, а помесь "Doom" с "Might & Magic". В нём есть такие уровни и секреты, что не снились самым шизанутым дизайнерам игр. Как нам ни жаль, но так и быть, выдаём секретик. Как заходите в конференцию, вверху увидите поле с темой. А слева — слово "Тема". Это такая хитровпёртая кнопка. Если по ней простучать азбукой Морзе "noclip", вы сможете проходить сквозь стены, а если "god", то сами понимаете... ;)

На одном из уровней Ткаббера, а именно в config.tcl, можно ввести специальное заклинание, и тогда эта кнопка станет хитровыпуклой и будет называться "Опции".

Удачного пикселхантинга! ;)

Отключить к (нецензурные слова пропущены) splash-окно

Ответ (из англоязычного FAQ): записать "set show_splash_window 1" в файл ~/.tkabber/config.tcl (не путать с custom.tcl).

Теперь он будет стартовать пол-дня и вы будете в нетерпении запускать по два десятка копий, ибо не понятно, он уже запустился или что.

Ответ номер 2: записать в тот же файл (~/.tkabber/config.tcl -- я не знаю где это в Windows...) такой код:

set show_splash_window 1

rename ::toplevel ::__toplevel
rename ::wm ::__wm

proc ::toplevel {args} {
	set w [eval __toplevel $args]
	if {$w eq {.splash}} {
		bind $w <Configure> [subst {
			wm overrideredirect $w 0
			wm iconify $w
			wm title $w {Tkabber (starting)}
			bind $w <Configure> {}
		}]
		bind $w <Destroy> {
			rename toplevel {}
			rename wm {}
			rename __toplevel toplevel
			rename __wm wm
			bind [winfo toplevel %W] <Destroy> {}
		}
		wm protocol $w WM_DELETE_WINDOW exit
	}
	return $w
}

proc ::wm {func w args} {
	if {$w eq {.splash} && $func eq {deiconify}} {return {}}
	eval __wm [list $func $w] $args
}

Теперь splash-окно появляется и сворачивается иконку, следовательно, ничему не мешает и никаких окон не загораживает. Но видно, что иконка есть, и следовательно Tkabber запущен. При желании иконку можно развернуть и посмотреть, как он медленно и печально коматозит^W стартует...

Подключить Ткаббер через SOCKS-сервер

Внимание! начиная с ревизии [70342f1d9d] (17 июля 2007 года) в разрабатываемой версии Ткаббера появилась поддержка прокси SOCKS4/5 и HTTPS, "позаимствованная" из Coccinella и допиленная; она будет присутствовать в следующей стабильной версии — 0.10.1.

Текущая стабильная версия Ткаббера сама не умеет работать с SOCKS-серверами.

В качестве паллиативного решения предлагается воспользоваться внешними утилитами, из которых наиболее удачными считаются решения проекта "Socks" компании NEC.

Официальный сайт проекта недоступен на 26 мая 2007, поэтому дадим несколько целеуказаний:

Подключить Ткаббер через Tor, для анонимного использования

Клиент Tor является SOCKS-прокси сервером, и подключение Ткаббера через него может осуществляться так же, как и через SOCKS-сервер.

Но при этом следует помнить о таких особых моментах. При "соксификации" не происходит перехвата DNS-запросов и возникает утечка DNS, что полностью уничтожает вашу анонимность для провайдера (ISP). Чтобы избежать этого, есть несколько решений. Рассмотрим то, что доступно любому.

Для того, чтобы не обращаться к DNS-серверу вашего провайдера, вам достаточно анонимно узнать IP используемых вами jabber серверов. Это можно сделать с помощью утилиты tor-resolve, входящей в поставку Tor (по крайней мере, для Linux). Вот два наиболее популярных сервера рунета:

jabber.ru 213.180.203.18
jabber.ttn.ru 213.24.85.3

Теперь вы можете вписать адрес в поле хоста на вкладке "Соединение" диалога подключения, а затем запомнить в настройках, либо занести в свой конфиг как

set loginconf(altserver) 213.180.203.18

В поставке для GNU/Linux вместе с Tor идёт удобная обёртка torify для tsocks и Tor. С её помощью вы можете легко "торифицировать" ваш Ткаббер, просто запуская его через скрипт

#! /bin/bash
exec torify tkabber

Как было написано в ответе на предыдущий вопрос, начиная с ревизии [70342f1d9d] (17 июля 2007 года) в разрабатываемой версии Ткаббера появилась поддержка прокси SOCKS4a, работающая с именами хостов. Таким образом, отпадает необходимость отправки DNS-запросов на сервер вашего ISP. Так что в следующей стабильной версии — 0.10.1 — вам достаточно указать тип прокси SOCKS4a, адрес и порт, который слушает Tor, на вкладке "Прокси" диалога подключения, а затем запомнить в настройках, либо занести в свой конфиг как

set loginconf(useproxy)      1
set loginconf(proxy)        socks4
set loginconf(proxyhost)    localhost
set loginconf(proxyport)    9050

Подключиться к Google Talk

Вопрос: Не могу подключиться к GTalk. На их сайте есть описания подключения для других клиентов, но что-то всё равно мне это не помогает.

Ответ: Почитайте статью Google Talk.

Победить предупреждение о проблеме с сертификатом сервера

Вопрос: При каждом подключении к серверу Ткаббер показывает обширное окно, в котором написано, что сертификат сервера самоподписан или в цепочке сертификатов есть самоподписанный сертификат. Как побороть?

Ответ: Есть два варианта решения проблемы:

Плохой

Отключите опцию ::tls_warnings в группе настроек Warnings. Это просто отключит показ диалога с предупреждением. Имейте в виду, что вся "заморочка с сертификатами" придумана не только для того, чтобы закрыть канал связи при помощи шифрования, но и удостовериться, что сервер, к которому вы подключаетесь, — "тот самый сервер", а не машина злобного хакера, который только что выполнил успешную атаку на ваше TCP/IP-соединение. Поэтому если вопросы безопасности имеют для вас серьёзное значение, переходите ко второму варианту решения проблемы.

Хороший

Сделайте так, чтобы Ткаббер имел возможность доверять сертификату сервера, с которым вы соединяетесь. Подробное описание теории и практики по этому вопросу можно почитать здесь.

Работать с версией из Fossil

Вопрос: Как мне получить версию из репозитория Fossil?

Вопрос: Я обновился с Fossil и всё сломалось!!! Что делать???

Вопрос: Почему нет "еженощных" сборок Ткаббера (под мою конкретную систему) или хотя бы архивов с "исходниками"?

Ответ: Прочитайте эту статью.

Задолбало выпадающее меню в контекстном меню MUC-юзера

Вопрос: Хочу посмотреть vCard человека в комнате, а в меню на нём постоянно попадаю в пункт "Игнорировать" вместо "Показать информацию". Что делать?

Ответ: Не наговаривайте на себя. Это не вы постоянно попадаете в "Игнорировать", потому что "плохой охотник", а просто у этого пункта имеется своё подменю, которое выскакивает вбок при наведении на него мыши, и тайм-аут там один на всех, а все мы разные. Так что волею судьбы этот пункт стал препятствием на пути к истине :) Кстати, обратите внимание, что пункты MUC и Игры особо-то и не мешаются. Почему? Дело в том, что они расположены далеко от "Показать информацию", и мы проскакиваем их мышью быстро. А вот когда мы приближаемся к искомому пункту, чтобы не проскочить дальше, снижаем скорость, и вот тут-то тайм-аут и играет свою злую шутку. Учитывая, что подменю выскакивает поверх контекстного меню, результат превосходит все ожидания. Тем не менее, у этой проблемы есть как минимум шесть решений разной степени бредовости.

  1. Самый простой способ (ибо уже осуществлён). Пункт "Игнорировать" переносится в самый низ данного меню при помощи хитрой настройки в файле конфигурации.
  2. Самый правильный, но не осуществлённый способ (потому что так мы сделаем добро тысячам людей, которые смогут настраивать Ткаббер под свои понятия о времени, не роясь в коде). Нужно прикрутить к Ткабберу настройку тайм-аута для таких вот раскрывающихся элементов меню. Патчи/плагины приветствуются. (?) Поправьте меня: Люди тут говорят, что тайм-ауты для таких дел находятся в ведении системы, а стало быть, простым смертным приложениям недоступны.
  3. Ещё один правильный, но тоже не осуществлённый способ. Сделать как в виндах: если справа от контекстного меню места достаточно, выкидывать подменю вправо, в противном случае — влево, начиная от левого, но никак не от правого края контекстного меню. (?) Поправьте меня: Люди тут говорят, что в виндах и проблемы-то такой нет :(
  4. Способ для лентяев, а также людей, не знающих, что такое мышь. Смотреть информацию с помощью команд /vcard nick, /version nick и прочих (это фича Ткаббера; по команде /vcard в текущем окне чата тупо выведется текстовая составляющая vCard (не вся, потому и надо дополнять это другими командами) — на безрыбье и рак рыба).
  5. Способ для кулхацкеров, которые могли бы осуществить способ номер два или три, но считают это ниже своего достоинства. Можно много чего нагромоздить. Например, навесить вызов окна vCard на какое-нибудь клавиатурное событие, причём сначала при нажатии горячей клавиши должно выскочить окошечко с полем ввода ника. Это уже, конечно, из области маразма, но идею можно развить в правильном направлении ;) Примеры кода вы можете найти здесь, название события для вывода окна vCard предлагается отыскать самостоятельно, начать можно так: $ cd /tkabber/install/dir/ && grep -r vcard *.tcl
  6. Способ для фанатов Tomb Raider, CS, Quake, значкистов ГТО и прочих чингачгуков. Делай с нами, делай как мы, делай лучше нас. Быстрее, выше, сильнее!

Как мне собрать новый tclgpg с googlecode?

Вопрос: Слышал, что ведутся работы по написанию нового интерфейса на тикле к GPG. Как мне на него перейти?

Ответ: Да, с осени 2008 года можно забыть tclgpgme, как страшный сон. Вот тут рассказано, как собрать и прикрутить новый tcl-интерфейс к GnuPG — tclgpg.

Как настроить работу с плагином OSD?

Вопрос: Кто-нибудь настраивал плагин OSD? Не знаю, с чего начать.

Ответ: Долгое время этот вопрос мало кого интересовал, поэтому никто не выяснял подробностей и, естественно, не публиковал здесь результатов. Однако вчера (27 января 2009 г.) я, бороздя просторы Вселенной Интернета, наткнулся на вот эту статью аж за февраль 2007 года и, с разрешения автора, решил скопировать сюда её часть, посвящённую OSD.


Остается последний пункт — OSD. Для этого нам понадобится добавить (в файл config.tcl — прим. ред.) следующее:

proc postload {} {
# Set OSD plugin options
namespace eval ::osd {}
    set ::osd::osdfont "-misc-fixed-medium-r-normal--20-200-75-75-c-100-koi8-r"
    set ::osd::options "-c yellow -A right -s 1 -p bottom"
}
set ::osd {presence chat_message}

Естественно, в качестве osdfont можете использовать тот шрифт, что вам нравится. options тоже можете заполнить на свой вкус (подробно они описаны в man osd_cat). set ::osd {presence chat_message} отвечает за то, в каких случаях будут выскакивать OSD-сообщения, например, в нашем случае — это когда у пользователей из нашего ростера изменяется статус (presence) и когда мы получаем новое сообщение (chat_message). Мне это подсказали в официальной конференции tkabber, более подробных разъяснений мне добиться не удалось — никакой документации по использованию osd.tcl не существует.

Во время использования tkabber с osd мною была замечена следующая особенность: при просмотре видео через gl2-вывод (mplayer file.avi -vo gl2) при появлении сообщений, видео начинало жестоко тормозить. Не знаю, как OSD влияет на другие OpenGL-приложения, это мне еще только предстоит выяснить.


Добавлю, что существует другой плагин, OSD redux, который является улучшенной версией стандартного плагина OSD.

Включить другой язык интерфейса?

По умолчанию Ткаббер выставляет язык интерфейса на основе локали или языка установленной системы (например, в испанской Windows интерфейс будет испанский). Чтобы изменить язык интерфейса, впишите в config.tcl вне всяких хуков строчку

::msgcat::mclocale en

где en — код нужного вам языка (в данном случае — английский; в /path/to/installed/tkabber/msgs можно найти другие доступные языки).

Изменить и зафиксировать ширину ростера?

Отредактируйте файл "цветовой схемы", который вы используете, например, teopetuk.xrdb. Они лежат либо в /usr/share/tkabber/examples/, либо в C:\Program Files\Tkabber\tkabber\examples, либо в your/tkabber-fossil/directory/examples/xrdb/. Обычно где-то в самом начале там имеются такие параметры:

! Roster width (tabbed interface only)
Tkabber.mainRosterWidth:    110
! Roster width in groupchat windows
Tkabber.chatRosterWidth:    105

Первый отвечает за ширину ростера в интерфейсе со вкладками, второй — за ширину ростера конференции.

Изменить шрифт в окошке ввода сообщения?

Вы либо не прочитали, либо не осилили статью Шрифты. А между тем, всё просто. Есть как минимум два способа это сделать.

  1. Можно залезть в файл *.xrdb — ту "тему", которую вы используете, и найти там слово font. Подправьте спецификацию шрифта и раскомментируйте строчку. Если у вас такой строчки нет, поищите в других примерах. Эта опция изменит шрифт не только окна ввода, но и вообще всех элементов интерфейса Ткаббера (кроме текста сообщений чата и элементов ростера).
  2. Этого недостатка лишён другой способ: прямо указать в конфиге шрифт лишь для нужного виджета. Надо полагать, этого вы и хотели добиться, но не знали, как этот виджет зовут. Итак, наши гуру в чате подсказывают: *Chat.input.font — то есть, вам нужно прописать в конфиге примерно следующее:

    option add *Chat.input.font {{Times New Roman} 14 bold italic}
    

Изменить интервал повторного подключения к серверу?

Ответ доступен здесь.

Внешний вид и звук

Ткаббер ЧаВо/Внешний вид и звук

Глюки, возникающие в процессе работы

Ткаббер ЧаВо/Глюки

Всякая всячина

Ткаббер ЧаВо/Разное