Tkabber FAQ/How can I...?

From Tkabber Wiki

Jump to: navigation, search

Tkabber FAQ was divided into several parts. Here we will talk about customizing Tkabber, adapting it for a user's needs. There are links to other Tkabber FAQ pages at the bottom.

Contents

How can I...

configure Tkabber (cannot find config.tcl file)?

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

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

set up "autologin"?

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

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

set autologin <value>

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

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

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

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

work with RSS?

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

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

send messages by pressing Ctrl-Enter?

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

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

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

work simultaneously with several accounts?

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

Ответ: 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) и сделать все автологины единообразно, добавив соответствующие строчки в этот хук.

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

autojoin conferences?

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

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

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

  • Задействуйте Главное меню → Службы → Добавить конфереренцию в контакты.
  • Находясь в нужной комнате, нажмите кнопку "Тема" (слева от поля темы комнаты, она по умолчанию не "выпирает") и в появившемся меню выберите пункт "Добавить конференцию в контакты".

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

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

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

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

compress Tkabber's traffic?

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

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

make text bold, italic and underlined?

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

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

enter unicode characters which are not present in my locale?

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

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

ignore somebody?

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

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

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

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

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

  • Большинство комнат конфигурируются как "полуанонимные" (участники не видят реальных JID'ов друг друга, администраторы и владелец — видят) или как "анонимные" (никто не видит реальных JID'ов друг друга). Ткаббер использует игнорирование по реальному JID'у участника, если он доступен, или по его нику. Нужно чётко понимать ограничения игнорирования по нику: с данным (игнорируемым) ником, в принципе, в комнату может войти любой другой человек, после того, как игнорируемая персона вышла из комнаты. С этим можно (частично) бороться при помощи настройки ::plugins::mucignore::options(transient_rules), расположенной в группе Chat → MUC Ignoring: если она включена, Ткаббер не сохраняет установленные в данном сеансе работы правила игнорирования.
  • "Обобщённый" редактор правил пока что не реализован. Это означает, что если у вас в правилах скопилось много "мусора", единственный способ исправить ситуацию — прямое редактирование переменной ::plugins::mucignore::stored_rules в файле custom.tcl.
  • Поскольку игнорирование ведётся на стороне клиента, ваш трафик оно не спасает — оно всего лишь не показывает сообщения от игнорируемого участника.
  • Сообщения, уже помещённые в комнату до того, как вы включили игнорирование их автора, остаются видны "как есть".

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

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

set up confirmations on some actions?

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

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

control Tkabber remotely?

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

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

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

use Tkabber commands?

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

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

hide the client and the OS versions?

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

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

  • Отключите опцию ::plugins::options(reply_iq_version) и наслаждайтесь анонимностью.
  • Чтобы злой хацкер не узнал, сколько времени показывают ваши часы на компьютере, отключите ::plugins::options(reply_iq_time).
  • Чтобы он не узнал, сидите вы за компом или вышли покурить (чтобы как раз, значит, хакать уже), отключите ::plugins::options(reply_iq_last).
  • Настоящие параноики кроме этого должны помнить ещё о двух опциях:
    • включить ::iq::options(show_iq_requests) (показывать чужие запросы к вам в статусной строке) и
    • выключить ::muc::options(report_muc_rooms) (чтобы, пробраузив вас в Диско, нельзя было посмотреть список конференций, где вы сидите).
  • Чтобы вообще никто ничего никогда о вас не узнал, закройте Ткаббер, выдерните сетевой кабель и выключите компьютер. Прямо сейчас. Пока этого не сделали МЫ! ;)

install a Tkabber plugin?

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

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

diminish the traffic?

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

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

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

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

build Starpack?

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

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

do fast Copy/Paste without Windows clipboard?

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

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

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

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

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

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

check spelling?

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

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

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

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

  • В поле настройки ::plugins::ispell::options(command_line) пишем -d russian,
  • В поле ::plugins::ispell::options(dictionary_encoding) — кодировку словаря. Если это поле оставлено пустым, то считается, что кодировка словаря совпадает с системной.

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

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

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

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

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

move my roster from server to server? ...import ICQ contacts?

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

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

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

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

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

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

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

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

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

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

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

  • Отрегистрируйтесь от гейта на старом сервере.
  • Зарегистрируйтесь на соответствующем гейте нового сервера.
  • Выясните JID'ы гейтов на старом и новом серверах;
  • Откройте экспортированный ростер в текстовом редакторе (файл ростера содержит текст в UTF-8). Ищите в файле джиды контактов, содержащие подстроку — JID гейта на старом сервере и заменяйте её на подстроку — JID гейта нового сервера (например, icq.oldserver.com на pyicqt.newserver.net).
  • Импортируйте файл ростера на новом сервере.

Переподписка на присутствие для гейтуемых контактов, по идее, не требуется, так как с точки зрения сервера соответствующей системы быстрого обмена сообщениями поменялся только "Ваш" IP-адрес (!) TODO: уточнить.

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

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

read a log of a private chat with a conference visitor that has already left the room?

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

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

give kick/ban reason?

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

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

/kick nick
reason
/ban nick
reason

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

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

configure a conference?

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

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

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

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

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

disable the f... splash-screen?

Ответ (из англоязычного 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 стартует...

connect to a jabber-server via SOCKS-server?

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

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

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

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

  • Для Windows используйте SocksCap.
  • Для Linux:
    • Возьмите tsocks;
    • Или поищите в гугле по слову "runsocks" (или даже сразу посмотрите сюда).


connect via 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

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

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

connect to Google Talk?

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

Ответ: Почитайте соответствующий раздел статьи "Между офлайном и онлайном"

work with a SVN-version of Tkabber?

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

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

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

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

I'm sick and tired with a drop-down submenu in a MUC-user's context menu. Any suggestion?

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

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

Appearance and sound

Tkabber FAQ/Appearance and sound

Glitches arising during work

Tkabber FAQ/Glitches

Miscellanea

Tkabber FAQ/Miscellanea