Tkabber Wiki

Проблемы X Window и TTF
Login

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

Содержание

Симптомы

Ткаббер, работающий под "иксами", падает при попытке показать какой-либо символ из "верхней части" Unicode.

Для начала включите отладочный лог, запустив Ткаббер примерно так:

$ tkabber 2>&1 >/tmp/tkabber.log

(на самом деле, достаточно запустить Ткаббер из X-терминала, без всякого перенаправления его потоков вывода, тогда ошибка будет просто видна в терминале).

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

X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 45 (X_OpenFont)
Value in failed request:  0x22000ef
Serial number of failed request:  2263
Current serial number in output stream:  2264

то вам повезло (относительно), так как корень зла в данном случае известен — неправильная работа одного из компонентов X Window с TrueType-шрифтами.

Сразу стоит оговориться, что ни Ткаббер, ни Tk не имеют к происходящему никакого отношения, так как приведённая выше ошибка — это ошибка, сгенерированная в "недрах" Xlib.

Причины

Причин, судя по всему, две:

Лечение

К сожалению, из-за многообразия комбинаций "X-сервер + сервер шрифтов" и их настроек однозначно работающее решение привести сложно. Поэтому ниже дана информация, которую вам понадобится:

В конце концов, "спасение утопающих — дело рук самих утопающих" ©.

Шрифты?

В FAQ юниксового клона MSN Messenger — aMSN сказано, что проблема, скорее всего, в том, что в системе установлены шрифты, содержащие ошибки, и они выбираются сервером шрифтов раньше "правильных" шрифтов (в предположении что они есть) согласно сконфигурированной вами или стоящей по умолчанию схеме приоритетов.

Перевод этой информации:

  1. Проблема может быть в шрифте: попробуйте запустить aMSN с другим шрифтом (Tools → Preferences → Appearance).1
  2. Можете попробовать запустить aMSN с другой кодировкой (снова Tools → Preferences → Appearance, и utf-8 как самое безопасное решение).2
  3. Попробуйте очистить ваш кэш фонтов командой fc-cache -fv. Затем убедитесь, что ваша локаль (ваши переменные окружения LC_ALL или LC_CTYPE) установлены в системе (set | grep LC_) и удостоверьтесь, что соответствующие директории (что выводятся после =) имеются в каталоге /usr/lib/locale. Если их там нет, установите их в соответствии с требованиями вашей системы.
  4. Если же ничего из посоветованного не помогает, попробуйте выключать пути к фонтам (FontPath) в конфигах /etc/X11/XF86Config или /etc/X11/Xorg.conf, пока не выясните, какой путь ведёт к "кривому" шрифту, и затем пересоздайте файлы fonts.cache, fonts.dir и fonts.scale в том директории.

Примечания:

  1. Один из пользователей сообщил, что для него оказалось достаточным выбрать в качестве шрифтов Ткаббера Arial Monotype (из Microsoft Core Fonts), а ошибки у него были со шрифтом Tahoma.
  2. Естественно, в случае с Ткаббером шрифты и кодировки надо менять в его конфиге. Читайте в ЧаВо.

Сервер шрифтов?

А в этом архиве рассылки про exmh описывается решение проблемы, вызванной неправильной работой с TTF-шрифтами, реализованной в некоторых версиях X-серверов (по видимому, X11R6, если принять во внимание дату документа), которые сконфигурированы на раздачу шрифтов.

Предложенное решение — поставить специализированный сервер TrueType-шрифтов и сообщить об этом X-серверу.

Приведём конфигурацию:

Примечания:

Дополнительные ссылки по проблеме

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