Tkabber Wiki

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

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

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

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

Содержание

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

Общие вопросы

Ткаббер и Ufanet

Вопрос: Почему все мои пользователи в оффлайне??? Пытаюсь подключиться к аське через ЛОКАЛ, и не могу, а через ВНЕШКУ могу. Что за дела???

Ответ: На самом деле Ткаббер тут ни при чём. Это проблема вашего аськиного гейта на Уфанете (как вы его называете, ЛОКАЛ). ВНЕШКА — соединение со стандартным сервером аськи, будет работать до тех пор, пока жива сама аська. Насчёт же ЛОКАЛа обращайтесь к вашему системному администратору (который, кстати, в эксклюзивном интервью нашему журналисту сказал, что джаббер-сервер на Уфанете — его личная инициатива, за которую он, по всей видимости, кроме головной боли, ничего не получает, поэтому сей сервис предоставляется на условиях "as is", то есть: работает — хорошо, не работает — ищите другой сервер). Жаловаться в нашей конференции на ваш ЛОКАЛ бессмысленно. Можете обратиться за дополнительными разъяснениями к следующим людям: xmpp:Rail@jabber.ufanet.ru, xmpp:mircas@jabber.ufanet.ru, а также на конференцию xmpp:chat@conference.jabber.ufanet.ru

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

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

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

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

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

Вопрос: Нажимаю "Подключиться" в окне логина и Ткаббер "подвисает"; соединение с сервером не происходит (или происходит, но после указанной паузы). Что делать?

Ответ: Если исключить очень плохое качество связи, которое бывает, например, на GPRS-линках, причин обычно две, и обе они коренятся в том, что Ткаббер в ходе соединения с сервером выполняет запросы к DNS.

Эта статья подробно описывает возможные проблемы с DNS в Ткаббере и методы их решения.

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

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

Ответ: Для начала почитайте введение, также в сжатой форме это объяснено в официальной документации Ткаббера (разделы 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)

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

Ткаббер постоянно держит меня в состоянии "отошёл" ("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 и в официальном старпаке под Windows версии 0.9.9.

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

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

Обратите внимание на то, что под Windows автоэвей несколько глюковат (по-видимому, из-за глюков расширения tclWinidle). Это выражается в том, что при некоторых (так пока и не зафиксированных) условиях Ткаббер ни с того ни с сего переводит вас в состояние "extended away". Если это произошло, вам придётся рестартовать Ткаббер или, если вы готовы пожертвовать работой автоэвея в течение данного сеанса работы, поставьте оба тайм-аута в 0 и сохраните обе настройки "для текущей сессии", после чего выберите вручную нужное вам состояние доступности.

Кардинальным способом борьбы с этим багом является установка Tcl/Tk 8.5, который имеет встроенные средства для отслеживания неактивности пользователя, и Ткаббер (начиная с версии 0.10.0) использует эти средства. Расширение tclWinidle (как и tkXwin под X Window) становится при этом ненужным.

Ещё один кардинальный способ описан тут.

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

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

Ответ: Вариантов обычно два:

Подробное описание обходных манёвров для решения второй проблемы читайте здесь.

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

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

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

То, что называется "keepalive" в Ткаббере, представляет собой периодическую запись пробела (символа с кодом 0x20) в исходящий XML-поток. С точки зрения синтаксиса и семантики XML это никак не влияет на передачу данных, но зато позволяет удерживать прокси-серверы и NATP-устройства от разрыва соединения из-за его неактивности.

Про настройку этого keepalive читайте в официальной документации.

"Системный keepalive" — на уровне TCP-сокетов — напрямую в Ткаббере не поддерживается (и не будет в обозримом будущем из-за ограничений поддержки TCP-сокетов в тикле), однако, недавно появилась тестовая версия плагина, добавляющего такую поддержку.

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

(!) Сделать: расписать подробно про системный keepalive?

По поводу настройки системы почитайте вот этот трёп между Kostix и j-dreamer, а также README в плагине.

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

Что с грифельной доской?

Вопрос: Открыл в конфе грифельную доску, теперь не могу её прикончить, она при каждом входе появляется.

Ответ: Всё правильно. "Сообщения" доски выводятся как часть истории разговора в конференции. Вывод: чтобы избавиться от неё, надо затереть историю другими сообщениями, то есть банально поразговаривать. И наоборот, если вам нужно быстро затереть историю малопосещаемой комнаты, где история естественным путём обновляется редко, а тут зашёл спамер или хулиган и наспамил или наматерился, то можно открыть доску и нарисовать чего-нибудь, чтобы нежелательный текст ушёл в туман. Естественно, теперь начнёт доставать доска, но её мы убивать уже умеем ;) Количественные параметры для затирания того и другого предлагается определить самостоятельно.

Ткаббер в упор не видит SSL-сертификат для коннекта к серверу

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

Ответ: Подробный рассказ про сертификаты ЦС и Ткаббер находится здесь.

Не могу отредактировать закладку конференции в ростере

Вопрос: Пытаюсь отредактировать закладку конференции в списке контактов — например, включить автовход для этой конференции, — однако, в появившемся диалоге могу изменить только "ник" конференции. Что делать?

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

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

Подробное описание проблемы: Хотя Ткаббер и показывает закладки на конференции в ростере (что удобно для пользователя), физически закладки не находятся в списке контактов пользователя — они хранятся в особом "приватном хранилище" (см. XEP-0048 (historical) и XEP-0049).

Соответственно, если по какой-то причине у вас есть и закладка, и контакт в списке контактов, ссылающиеся на один и тот же JID (например, room@conference.server.org), Ткаббер в некоторых случаях будет глючить описанным способом: присоединение к конференции через закладку работает, а попытка её отредактировать вызывает редактор для элемента списка контактов.

Подобная "маскировка" закладки и контакта друг другом может появиться по разным причинам, например, если вы добавили конференцию с помощью кнопки "Добавить пользователя в ростер", то есть как обычный контакт (ну или ещё каким извратным способом), или если комната находится у вас в ростере со времён очень древних версий Ткаббера, когда ещё не было реализовано редактирование конференций). Также есть мнение, что подобное может происходить не по вине пользователя и не по вине Ткаббера, а по вине некоторых других клиентов, которые при создании закладки на конференцию на самом деле создают элемент списка контактов, или делают то же самое при каких-то других условиях. Если вы "поймаете" какой-либо клиент на этом, сообщите нам в [xmpp:tkabber@conference.jabber.ru](xmpp:tkabber@conference.jabber.ru).

Upd: До выхода версии 0.11.0 причиной этого запросто мог служить импорт ростера в Ткаббере — этот механизм был реализован слишком прямолинейно, и, судя по всему, закладки конференций при импорте становились элементами ростера (контактами). В версии 0.11.0 был реализован более "продвинутый" механизм экспорта/импорта списка контактов, который решает эту проблему.

Примечание: Ещё один способ узнать, есть ли у конференции "глюк с маскировкой", состоит в следующем: тултип на закладке должен показать "Подписка: bookmark". Если он показывает "Подписка: none", вы наступили на описываемую проблему, и закладку придётся передобавить.

Ткаббер и iChat

Вопрос: I'm sick and tired of getting a lot of iq-s from some of my contacts that use iChat. Whose balls should I cut off: Apple or Tkabber developers? What can I do with Tkabber (or iChat) meanwhile?

Ответ: Please read the following and take your decision about the balls >;->

[08:37]<Торчёк|work>
IN(1,*@jabbus.org/work):
<iq from='*%ya.ru@ya.jabbus.org/MacBook'
       id='iChat_4079FAC1'
       type='get'
       to='*jabbus.org/work'>
 <query node='[http://tkabber.jabber.ru/\#0.10.0-svn-20080105\#8W0f3vwHVN71Gg8Cvp0k6w=='](http://tkabber.jabber.ru/#0.10.0-svn-20080105#8W0f3vwHVN71Gg8Cvp0k6w==')
       xmlns='[http://jabber.org/protocol/disco\#info'/](http://jabber.org/protocol/disco#info'/)>
</iq>
OUT(1,*@jabbus.org/work):
<iq id='iChat_4079FAC1'
       to='*%ya.ru@ya.jabbus.org/MacBook'
       type='error'
       xml:lang='en-GB'>
 <query node='[http://tkabber.jabber.ru/\#0.10.0-svn-20080105\#8W0f3vwHVN71Gg8Cvp0k6w=='](http://tkabber.jabber.ru/#0.10.0-svn-20080105#8W0f3vwHVN71Gg8Cvp0k6w==')
       xmlns='[http://jabber.org/protocol/disco\#info'/](http://jabber.org/protocol/disco#info'/)>
 <error type='cancel'
       code='405'>
   <not-allowed xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
 </error>
</iq>
[08:37]<Торчёк|work> кто виноват? ткаббер или ichat маковский?
[08:37]<Торчёк|work> реквесты идут постоянно. 3-4 раза в секунду
[08:54]<Торчёк|work> второй извесный случай с ичатом,
в первый раз грят был тоже ткаббер
[09:36]<teo> Торчёк|work: виноват ichat (в большей степени).
он не реагирует на то, что ему вернули ошибку. ну и ткаббер немного
(в нем неализована поддержка xep0115 не той версии, что понимает ichat)
[09:37]<Торчёк|work> багропорт ичату уже запостили. остаётся только ждать
[09:39]<teo> ага. ждать, пока apple соизволит отреагировать...
[09:39]<toon> хаха
[09:40]<Торчёк|work> проще доделать в ткаббере
[09:41]<teo> надо бы. доделать и отключить нафиг
[09:42]<Торчёк|work> teo: "    уточни у него какая версия реализована в ткаббере,
какую нужно реализовать в ichat
   я отпишу в их форуме
   может хоть к следущему пакету исправлений поправят (но сомневаюсь)"
[09:42]<teo> в ткаббере 1.4
[09:42]<teo> надо будет допилить до 1.5
[10:40]<bigote> btw, I experienced those endless iChat iq requests, too
[10:41]<teo> bigote: everyone did
[10:41]<bigote> they could last hours
[10:42]<bigote> well, at least I can tell LKnight what happend :)
[10:43]<teo> bigote: did you explain him where he lost some gigs of traffic? :)
[10:47]<bigote> he and all his Jabber contacts
[14:29]<kostix> я постил сюда кусок кода в конфиг против тупого айчата
[14:30]<kostix> [http://chatlogs.jabber.ru/tkabber@conference.jabber.ru/2008/02/06.html\#16:56:41](http://chatlogs.jabber.ru/tkabber@conference.jabber.ru/2008/02/06.html#16:56:41)
[14:49]<teo> сегодня закоммичена поддержка капсов 1.5. должно излечить

Вопросы, связанные с Линукс

Шифрование в Ткаббере: проблемы с 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 на вашей системе.

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

Ткаббер валится при вводе gpg-пароля

Вопрос: Если при запуске Ткаббера не вводить пароль сразу, а потом во время работы нажать кнопку Toggle signing (тогда Ткаббер при первой необходимости сам запросит пароль), то обнаруживается такой глюк: если в промежутке между запросом пароля и его вводом пришло сообщение, то при попытке ввести пароль Ткаббер просто валится. Попутно с запросом пароля появляется также сообщение об ошибке в "encryption software". В чём может быть дело?

Ответ: По всей видимости, есть баг в потрохах tclgpgme, и надо его искать, что не очень-то реально. Учитывая общую ситуацию с шифрованием в Ткаббере, выводы напрашиваются неутешительные. Проще сделать всё заново, чем доводить до ума имеющиеся библиотеки. Если у вас есть на это время, способности и желание, намёк должен быть понятен — человечество вас не забудет ;)

Дополнение: С tclgpg этого глюка не наблюдается.

В Ubuntu не вводятся русские буквы в Ткаббере, chto delat?

Вопрос: В Ubuntu не вводятся русские буквы в Ткаббере, chto delat?

Ответ: Это проблема Ubuntu. Она известна в том числе и за пределами Ткаббера.

Решений три:

Ткаббер под 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.

В Gentoo не работает сворачивание в трей

Вопрос: Что нужно, чтобы в Gentoo Ткаббер мог сворачиваться в трей?

Ответ: Необходимо наличие установленного пакета dev-tcltk/tktray.

Fedora 8 и Tcl/Tk 8.5

Вопрос: Нет поддержки сглаживания шрифтов и/или autoaway в Fedora 8 и Tcl/Tk 8.5. Что делать?

Ответ: Убедиться, что при сборке Tk установлены библиотеки libXft-devel и libXScrnSaver-devel (при установке libX11-devel эти пакеты автоматом не вытягиваются по зависимостям, а Tk спокойно собирается без них).

Обновил тикль до 8.5, но Ткаббер по-прежнему запускается с 8.4

Вопрос: Вот, не знаю, что и делать. Новый тикль в системе есть, а Ткаббер его не видит.

И не увидит, пока вы ему об этом не скажете. Это задачка на сообразительность. Смотрим файл tkabber.tcl: в самом начале есть строчка, перезапускающая Ткаббер "in true way", через интерпретатор wish. Значит, собака порылась в нём. Набираем в консоли

which wish

и получаем, скорее всего, такой ответ: /usr/bin/wish. На этом наше расследование не закончено, делаем

stat /usr/bin/wish

и среди прочих данных видим примерно следующее: File: «/usr/bin/wish» -> «/etc/alternatives/wish». Это символьная ссылка на другой файл. Просмотрев и его статистику, в конце концов выясняем (File: «/etc/alternatives/wish» -> «/usr/bin/wish8.4»), что при запуске Ткаббера по цепочке ссылок запускается старая версия тикля. Чтобы исправить положение вещей, надо удалить /etc/alternatives/wish и создать ссылку заново, чтобы она указывала уже на нужную вам версию исполняемого файла.

sudo rm /etc/alternatives/wish
sudo ln -s /usr/bin/wish8.5 /etc/alternatives/wish

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

#! /bin/sh
/usr/bin/env wish8.5 /path/to/tkabber.tcl -name Tkabber

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

Немного подробнее о той же проблеме рассказано тут.

Userinfo в KDE 4.x

Вопрос: Когда вызываю userinfo пользователя, его окошко выглядит как вертикальная палка (то есть, ширина его равна нулю). Приходится это окошко растягивать вручную. Есть ли решение этой проблемы?

Ответ: Да, это баг. Причём, неизвестно, чей — то ли Tk, то ли KDE 4. Как его починить, мы пока не знаем. Решений на данный момент три:

  1. Поменять KDE 4.x или Ткаббер на что-нибудь менее глюкавое.
  2. Оставить всё как есть и растягивать окошко вручную.
  3. <tempestadept> В качестве workaround-а можно в настройках kwin в особых параметрах окон создать правило: для класса (regexp) userinfo_.* Toplevel явно указать начальный размер. (©)

Диалоговые окна Tk на многоголовом X11-сервере

Вопрос: Как центрировать диалоги в пределах одногой физического дисплея на мультиголовых конфигурациях X11-сервера?

Ответ: На данный момент как Tcl/Tk так и ткаббер не поддерживают расширение Xinerama X11-сервера как и TwinView, «из коробки». По этому все диалоговые окна располагаются по центру виртуального дисплея, то-есть примерно между двумя мониторами. Эту проблему можно решить с помощью WM, создавая правила для размещения (геометрии) окон класса "Dialog". Конкретные способы создания правил различны для разных WM:

(!) Сделать: Дописать про другие WM

Вопросы, связанные с Виндовс

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

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

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

Вопрос: Старпак не показывает фотки в формате JPEG или PNG. Что делать?

Информация про старый старпак находится тут.

Старпак/старкит при старте ищет файлы, подходящие под маску *.kit в двух местах:

Эти самые kit-файлы — это старкиты, содержащие расширения Tcl/Tk. Вам потребуется старкит с расширением TkImg — img.kit.

Вопрос: Как прикрутить поддержку сжатия к старпаку?

Без переделки старпака эту проблему не решить.

Официальные старпаки не поддерживают сжатие.

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

Старпака 0.10.0 с поддержкой сжатия на данный момент не существует.

Не работает браузер под виндами

Вопрос: Прописал в настройках Ткаббера для браузера (Настройки → Main Interface → webbrowser**) имя исполняемого файла — не работает. Прописал полный путь к нему — то же самое.**

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

{C:\Program Files\Internet Explorer\iexplore.exe} %s

(путевое имя файла окружено фигурными скобками) или

"C:/Program Files/Internet Explorer/iexplore.exe" %s

(кавычки + прямые слэши).

Или в config.tcl добавить что-то вроде

hook::add finload_hook {
    set ::webbrowser "\"C:/Program Files/Internet Explorer/iexplore.exe\" %s"
}

Дополнительное чтение по теме:

При клике на URL'е в Ткаббере запускается две Оперы и открывают страницу два раза

Вопрос: У меня Опера. При попытке открыть ссылку из Ткаббера, запускается две копии Оперы и открывают ссылку два раза. Что делать?

Ответ: Баг реализации DDE в Опере. Решением является прописывание полного пути до исполняемого файла этого браузера в настройке "webbrowser" Ткаббера (см. выше).

Странное поведение прокрутки содержимого окна чата колесом мыши

Вопрос: Малейшее движение колесом мыши с целью прокрутить содержимое окна чата вверх или вниз "очищает" окно чата — никакого текста не видно. Другими словами — впечатление такое, что скроллинг колесом мыши обладает чрезмерной чувствительностью.

Ответ: Проблема — в "кривизне" "родных" драйверов вашей мыши. Наиболее часто докладывают о проблемах с многокнопочными мышами A4 Tech. "Кривизна" состоит в том, что драйверы зачем-то реализуют собственный механизм скроллинга колесом, фактически подменяя системный вариант. Этот механизм неправильно работает в некоторых случаях, и Windows-версия библиотеки Tk, реализующей GUI в Ткаббере, — как раз такой случай.

Решений у проблемы два, и их следует попробовать в указанном порядке:

  1. Поищите в настройках драйвера специальный пункт, отвечающий за отключение дурацкого механизма скроллинга или за включение нормального, системного механизма. Обычно он называется "Use MS Office compatible scroll" у Logitech и "Режим совместимости с MS-IntelliMouse" у A4 Tech.
  2. Удалите "родной" драйвер из системы и установите обычный системный "драйвер трёхкнопочной мыши с колесом". Нормальный драйвер работает правильно, но "в отместку" вы потеряете возможность использовать 4-ю, 5-ю и прочие кнопки, колёса, рычажки и вентили на вашей мыши.

Говоря проще: попробуйте объяснить драйверу, в чём его ошибка, либо живите с подходящим стандартным драйвером Windows.

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

Дополнительное чтение по вопросу: вот, вот и вот.

Конкретные мыши и их настройки

(!) Сделать: ОЧЕНЬ желательно иметь точные описания настройки разных типов глючных "родных" драйверов. Можно даже со скриншотами. Не ленитесь присылать. Если вы выкладываете скриншот сами и хотите внести правку в этот раздел самостоятельно, помните, что страница ЧаВо — одна из самых "тяжёлых" на вики. Давайте лишь текстовую ссылку на изображение (см. код вышеприведённого примера про мышь Genius).

Ошибка: wrong # args: should be "zlib option data ?...?", что делать?

Вопрос: Ткаббер выдаёт ошибку:

wrong # args: should be "zlib option data ?...?"

Что делать?

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

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

Вкратце: сжатие в старпаках не поддерживается, и незвестно, когда будет (и будет ли).

Решений, в принципе, два:

Windows, дистрибутив от ActiveState — "падения" при нажатии Alt-любая кнопка в главном окне

Ответ: Проблема в Tk 8.4.15 и 8.5a6. Откатитесь на 8.4.14, или "докатитесь" до 8.4.16 и 8.5b1, соответственно.

Windows, дистрибутив от ActiveState — "падения" при открытии в фоне окна со смайликом

Ответ: Проблема в Tk 8.4.15 и 8.5a7. Откатитесь на 8.4.14 или "докатитесь" до 8.4.16 и 8.5b1, соответственно.

Фатальная ошибка в wish при запуске полноэкранных приложений под Windows

Вопрос: При запуске какой-либо программы в полноэкранном режиме (будь то игра или банальный FAR), wish валится с ошибкой: Tried to free a color that isn't allocated!

Ответ: Да, эта ошибка появляется при переключении в полноэкранный режим, и дело тут в глубине цвета. Это баг wish, а не Ткаббера, так что и бороться нужно с wish. Баг давно известен, в том числе и на Багтрекере Ткаббера, и гуглением по тексту ошибки легко находятся решения. Самое полное обсосано на официальном сайте Ткаббера: имеется патч на tkWinColor.c (внимание, ни мы, ни автор патча не можем нести и не несём ответственности за его применение!). Другой способ решения проблемы: отконфигурировать программу, чтобы при переключении в fullscreen глубина цвета оставалась такой же, какая установлена на десктопе (либо наоборот).

Кроме того, имейте в виду, что эта проблема вроде бы изжита в Tk 8.5. Однако, это требует проверки. Если вы можете подтвердить или опровергнуть эту информацию, не поленитесь сообщить об этом (здесь или в комнате xmpp:tkabber@conference.jabber.ru).

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

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

А как мне...?

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

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

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