В сообщении от 29 Апрель 2003 11:12 Victor B. Wagner написал: > On 2003.04.29 at 10:04:43 +0600, Dimitry N. Naldaev wrote: > > него нужно патчить... Вот если бы Вы провели небольшую экскурсию на > > предмет того, а что же происходит в недрах xlib когда его просят вывести > > некоторую строку шрифтом -*-courier-*-*-*-*-*-*-*-*-*-*-*-* > > Во-первых, xlib так никогда не просят. xlib просят > 1. Найти шрифт, соотвествтующий этому шаблону. Он его находит, > и возвращает некий идентификатор этого шрифта.
Копать здесь :-) Как ищется шрифт, соответствующий шаблону? какие функции отвечают за этот процесс и где они живут? > > 2. Вывести текст шрифтом с таким-то идентификатором. > > Во-вторых, речь шла не столько об xlib, сколько об Xt. > Который имеет свой собственный механизм работы с ресурсами, надстроенный > над xlib-овским. А Xaw и Motif надстраивают сверху еще один уровень. типа если xlib будет находить правильный шрифт, соответствующий шаблону, то эти надстройки могут его "испортить"? > > В-третьих есть еще xrdb, который умеет препроцессировать файл ресурсов. Не знал, не знал... > > Видимо, самый простой путь борьбы - прикрутить к xrdb макрос > FONT_ENCODING, который будет соответствующим образом раскрываться, > в зависимости от nl_langinfo(CODESET). не уверн, что это будет проще... Мне бы еще хотелось, чтобы xlib умел находить фонт с нужным dpi в зависимости от dpi монитора/X-сервера. интересно сдесь тоже можно сделать через xrdb или без пропатчивания xlib не обойтись? > > > мне кстати еще так же непонятно, за что отвечает файлик > > /usr/X11R6/lib/X11/locale/koi8-r/XLC_LOCALE а так же где и как > > используется информация из этого файлика > > В основном - за ввод с клавиатуры. Используется он в основном > в XmbLookupString, которая преобразует присланный X-сервером код > клавиши (KeySym) в строку, сответствующую смыслу этой клавиши в текущей > локали. А за что тогда там отвечает раздел XLC_FONTSET и где он используется? > > Можно запустить программку xev и потыкать в разные клавиши посмотреть > как оно себя ведет. > > > еще есть идея не генерить кучу шрифтов для каждой кодировки из > > юникодового шрифта, а делать соответствующую перекодировку на лету те > > вырезать соответствующий фонтсет :-) из юникодовых шрифтов по мере > > надобности точно так же, как это делается для ttf шрифтов... > > Не только для ttf. Для всех scalable, то есть и для Type1 тоже. > > Фактически все scalable шрифты на лету преобразуются в bitmap-шрифты > нужного размера и кодировки. А bdf/pcf шрифты уже живут готовенькими > > > > > Не понятно только почему об этом должна болеть голова у конечного > > > > пользователя??? > > > > > > Потому что пока никто не предложил лучшего решения. > > > > ??? КАК не предложил?!! > > > > а положить более-менее работающий набор ресурсов в > > /etc/X11/<имя локали>/app-defaults/ > > при инсталяции системы? > > Предложением решения в данном случае является не абстрактная фраза > "положить трам-там-там", а патчи к пакету, отправленные мейнтейнеру > через Debian bug-tracking систему. > У меня есть подозрение, что проще и правильнее выпустить отдельный/е пакет(ы) аддон(ы) с локалезированными ресурсами для X'ов > Тут есть несколько дополнительных граблей, на которые можно наступить. > Во-первых, XLFD (X Long Font Description) задает не только имя шрифта, > но и размер. Поэтому для разных разрешений монитора шрифты должны быть > заданы разные. О да! очень серьезное замечание. меня если чесно уже задалбала борьба с размерами шрифтов на 100 dpi мониторе и боле мене приемлемого решения я до сих пор не знаю :-( особенно если учесть, что gimp почему-то зависит от фонтов в 75 dpi > А для xterm их должно быть вообще задано 6 штук - от tiny > до huge. > > Во-вторых, некоторые любят шрифты -rfx-*, а некоторые -cronyx-*, > А в дистрибутиве есть и те и другие. А некоторые ни то и ни другое. но пока больше не из чего выбирать :-( тут можно предложить настройку при инсталяции пакета например через debconf > > Поэтому предложить работающее решение довольно сложно. Призовая игра - > предложить решение, работающее в том случае если вдруг любители разных > шрифтов работают на одной машине. /etc/X11/имя-локали в этом случае не > спасает. Вопрос не в том, чтобы удовлетворить вкус самого изысканного гурмана, А в том чтобы предложить работающее решение по умолчанию, чтобы начинающий пользователь мог включить и увидеть что-то вразумительное. В любом случае это лучше, чем кракозябры Latin1 который получают пользователи стабильного debian'а из коробки сейчас...