avva: (Default)
[personal profile] avva
Беспорядочные впечатления от постепенного перехода на Линукс. Малоинтересно и много технической мути.

Я был уверен, что буду и по Линуксом пользоваться седьмой Оперой. И действительно, она установилась и отлично побежала, всё привычное и хорошее. Но тут я соблазнился всё же попробовать Mozilla Firebird. В последний раз, когда я пробовал Мозиллу, это было что-то совершенно неподъёмное и глючное, а Mozilla Phoenix (это, если не ошибаюсь, та же Firebird в ранних версиях) - слишком сырое. Но сейчас всё оказалось совсем по-другому. Firebird мне очень понравилась - быстро поднимается, быстро рендерит, отлично показывает ивритские сайты (в отличие от Оперы). Все те штуки, к которым я привык в Опере, есть в Mozilla Firebird в виде extensions, которые можно дополнительно сгрузить (например, mouse gestures, или больше возможностей управлять табами). Даже для Notes Оперы (возможность легко писать в левом сайдбаре автосохраняющиеся иерархические записки - я к этому очень привык) нашлась extension в Firebird (правда, не иерархические пока, а только две записки, но это уже нормально, а потом, небось, улучшат), что окончательно решило вопрос - перехожу на Мозиллу. Единственное, что осталось решить - проблему фонтов.

В общем, я подозревал с самого начала, что без True Type шрифтов лучше в X и не соваться - слишком уродливо и плохая поддержка языков. Gentoo инсталлирует базовый набор Виндовских шрифтов (бесплатный майкрософтовский набор core fonts, правда некоторые там называются (имя вендора) monotype, а другие microsoft - непонятно, почему) вместе с X, надо только всунуть путь к ним в FontPath конфиг-файла, что я сразу и сделал после инсталляции X. Оказалось, однако, что это только начало. xlsfonts распознал и продолжал распознавать все эти True Type-шрифты, но когда я установил Gnome2, в его диалоге выбора шрифтов их не было. Почему? Оказалось, я ничего не знал о загадочных штуках под названием Xft и FontConfig. Xft обеспечивает особенно хороший рендеринг шрифтов, с anti-aliasing, smoothing и hinting особенно хорошего качества (правда, я не очень понял, что из этого делает он сам, а для чего использует freetype, с помощью которой читает True-Type шрифты - и если использует freetype, которая, в общем-то, модуль внутри X, почему и без Xft все эти штуки не работают). FontConfig используется в качестве библиотеки общего назначения для каталогизирования и выбора шрифтов - настолько общего назначения, что она не зависит от X (например, её можно использовать в аппликациях для печати, когда X вообще не установлен). Поэтому она не получает список директорий шрифтов и не знает по умолчанию о моих True-Type шрифтах в /usr/X11R6/lib/X11/fonts/trutype . Пришлось отыскивать её конфиг-файлы (в /etc/fonts/), разбираться в них и добавлять эту директорию в список. После этого True-Type шрифты стали распознаваться в Gnome2 и он стал их использовать автоматически (видимо, благодаря FontConfig'у).

Интересно получилось, например, с LogJam: после того, как я его установил и запустил, он сначала отказался показывать русские буквы, писал вместе этого маленькие картинки с четырьмя цифрами (Unicode-код) вместо каждой буквы. Если же я запускал его так: GDK_USE_XFT=0 logjam (спасибо [livejournal.com profile] gaal за подсказку), то он начинал правильно писать русские буквы, хоть и не очень красиво. Это было ещё до того, как я добавил True-Type директорию в конфигурацию FontConfig. Я понял так: когда я говорю GDK_USE_XFT=0, logjam не использует Xft для рендеринга шрифтов, а использует стандартные средства X, который знает про True-Type шрифты (благодаря FontPath) и поэтому всё показывает - но не очень красиво, т.к. нет Xft, к-й делал бы anti-aliasing и прочие хорошие штуки. После того, как я включил True-Type директорию в конфигурацию FontConfig, LogJam стал и в обычном запуске (с GDK_USE_XFT=1, который включен по умолчанию после инсталляции Gnome) показывать русские буквы, и намного красивее и гармоничнее - т.е. через Xft, очевидно. Но мне не очень понятно, почему без True-Type шрифтов Xft не могла найти что-нибудь для русских букв (пусть даже битмаповые шрифты самого X, или шрифты Type1 - все они были в её конфигурации).

Хоть теперь Xft красиво рендерит True-Type шрифты (кроме некоторых проблем с Оперой и Мозиллой, о которых ниже), некоторыми вещами я не очень доволен в этой конфигурации, точнее недоволен не конфигурацией, а тем, что не понимаю, как некоторые вещи обнаружить. В опциях десктопа Gnome можно установить качество обработки шрифтов - делать ли им anti-aliasing и hinting, и какого уровня; насколько я понимаю, это опции Xft (я вообще не очень разбираюсь в том, что они значат и какие лучше выставлять, только понял, что subpixel smoothing мне не нужен, т.к. экран у меня не LCD). Но мне непонятно, каким образом выставленные там опции действуют после этого на всех запускаемых аппликациях, т.е. где эта информация сохраняется и как она распостраняется на другие аппликации (и делается ли это на уровне Gtk и тогда работает только в аппликациях, использующих Gtk? Или делается как-то на уровне Xft?). Это, впрочем, любопытство программиста. Другие вещи мешают мне больше. Я не знаю, например, как узнать, какой именно фонт в точности использует данная аппликация (можно как-то?). Пример номер раз: в конфигурации десктопа Gnome я выбираю дифолтные шрифты для всяких целей (Desktop Preferences->Fonts). По умолчанию, например, там стоит выбор "Sans" в одном месте и "Monospace" в другом. Я знаю (из чтения конфигурации FontConfig), что это на самом деле сборные имена для многих шрифтов, из которых, по-видимому, FontConfig сам выбирает наиболее подходящий во время runtime. Например, "Sans" это Helvetica, или Arial, или Verdana, или Nimbus Sans, или Luxi Sans... Когда я выбрал шрифт "Sans", FotoConfig выбрал за меня один из них, наиболее подходящий, и использует именно его. Но какой именно шрифт он выбрал? Я не вижу возможности это узнать! Перепробовав один за другим выбрать "настоящие" шрифты, и сравнивая, по образцу выбранного шрифта, к-й показывается во время отбота, их с выбором "Sans", я понял, что в данном случае он выбирает Verdana. Но это же ненормальный способ это узнавать - как же узнать это быстрее и лучше? Пример 2: та же проблема в терминале (программа gnome-terminal) - он сразу включает какой-то незнакомый мне шрифт. Этот шрифт мне в принципе даже нравится, но я хочу знать, какой это шрифт. Заходя в опции выбора шрифта внутри программы, я обнаруживаю, что включена опция "Use the same font as other applications" - но где записано, какой это шрифт? Отключив эту опцию, и перебирая методически все шрифты вручную, я обнаруживаю, что это был Andale Mono. Как я должен был узнать это без перебора? И, кстати, это не тот шрифт, что я выбрал в опциях десктопа, в опции "Terminal font" - зачем же тогда нужна эта опция?

Опера и Мозилла. В каких отношениях Опера находится с Xft, мне не очень понятно. С одной стороны, она явно использует Xft, и когда, например, я убираю опции anti-aliasing и hinting в десктопе Gnome и перегружаю Оперу, она начинает всё показывать "плохо", теми же шрифтами, но явно хуже всё рендерится - что подсказывает мне, что она пользуется Xft. С другой стороны, даже когда Xft не знала про True-Type шрифты, Opera про них знала и давала их выбрать в своей конфигурации, т.е. список шрифтов она, видимо, берёт у X? Не очень это мне понятно. Более серьёзная проблема возникла в другом месте: Опера плохо показывала страницы ЖЖ, слишком маленький шрифт, причём явно серифный, хоть обычно я привык к ЖЖ sans-serif (собственно, понял, что привык, только после того, как заметил, что Опера как-то "не так" показывает - обычно я совершенно не замечаю такие вещи). Инспекция исходников стадартной схемы ЖЖ показала, что там везде прописана font-family "Verdana, Arial, Helvetica", что на моей системе вроде бы должно выбирать Verdana, о которой теперь все знают (и X, и Xft). Но Opera почему-то выбирала Times New Roman, и только после того, как я поменял в её конфигурации шрифт в категории "Normal" с Times New Roman на Verdana, она начала правильно показывать ЖЖ. Но это, мне кажется, баг в Опере, т.к. я всё время был в author mode, где она обязуется использовать шрифты, прописанные на странице, а не указанные мной. Я не хотел бы оставлять Verdana в качестве дифолтного шрифта для всего веба! В общем, я потыкался, потыкался, но так это и не исправил и бросил, т.к. всё равно решил переходить на Mozilla Firebird.

В Мозилле всё было интерсней. Она с самого начала правильно показывала большинство сайтов, в том числе ивритские - но ЖЖ показывала плохо: слишком маленькие шрифты (и не уверен, что правильные). Попытка как-то это сконфигурировать внутри Мозиллы не очень удалась. После долгих мучений я обнаружил, что, во-первых, работают только выборы шрифтов в разделе кодировки "Western", хотя я смотрел при этом русские страницы в ЖЖ - но выборы шрифтов ни в кодировке "Cyrillic", ни в кодировке "Unicode" ничего не меняли. Western-то тут при чём? Это меня весьма удивило (баг? недоработка?). Во-вторых, в любом случае эти шрифты работают, только если включить опцию "Always use my fonts", и хотя это исправило показ ЖЖ более или менее, я опять-таки не хотел включать эту опцию для всего веба. Более того, проявился любопытный баг, о котором как-то писал [livejournal.com profile] jwz (не могу сейчас ссылку найти). А именно, предположим, что размер шрифта на странице указан в CSS (как обычно в ЖЖ), и потом я на этой странице пишу <font size=-1>. Тогда Мозилла берёт новый размер не относительно текущего размера шрифта с точки зрения CSS, а относительно какого-то дифолтного размера шрифта, который прописан у неё для HTML! И поэтому зачастую выходит, что после <font size=-1> текст становится больше размером, чем был до того. [livejournal.com profile] jwz писал о том, что он послал по этому поводу баг в Багзиллу, но разработчики Мозиллы закрыли его с тем основанием, что это, дескать, правильное поведение. И сейчас я это воочию наблюдал в ЖЖ.

Я уже отчаялся, но решил ещё напоследок разобраться с тем, как моя Мозилла общается с Xft. И обнаружилось, что никак: я установил Мозиллу через binary package Генту под названием mozilla-firebird-bin (обычно в Генту нет специальных отдельных пакетов для прекомпилированных программ, это - одно из исключений; это не значит, что в Генту всегда обязательно компилировать, просто обычно скомпилированный binary package используется в рамках того же пакета в дереве Portage Генту, просто с другими опциями), и там она скомпилирована и устанавливается с такими особыми опциями: она не использует Xft, но при этом не надеется на X в смысле использования True-Type шрифтов, а сама находит их и использует сама с помощью библиотеки FreeType (той же, что сидит в сервере X в виде модуля freetype, но эта Мозилла делает всё сама со стороны клиента, если я правильно понял). Я решил, что, возможно, из-за этого все проблемы, и решил скомпилировать Мозиллу заново из исходников, заставив её при этом использовать GTK2 и Xft2. После компиляции (которая заняла часа три, что ли) всё заработало отлично, шрифты сами собой стали показываться правильно, и, что совсем уже непонятно, исчез баг, связанный с <font size=-1>. Казалось бы, эта проблема должна сидеть внутри engine, обрабатывающей HTML, и не должна быть связана с шрифтами? Загадка (возможно, что какие-то другие опции при компиляции Мозиллы, отличные от опций прекомпилированного варианта, сыграли тут роль, но если так, то я не имею ни малейшего понятия, что это могли быть за опции).

Теперь в Mozilla Firebird всё просто замечательно, и я точно перехожу на неё. Сгружу сегодня всякие extensions, в первую очередь - для записок (notes), для Google searchbar, и для mouse gestures, а насчёт других посмотрим уж. Осталось только одна проблема с шрифтами, которая, тем не менее, сильно мне мешает: очень плохо рендерится текст на тёмном фоне (это верно как в Мозилле, так и в программе-терминале, например). Скажем, если я захожу в какой-то дневник в ЖЖ, в котором стиль сделан так, что всё показывается на чёрном фоне, то я просто с трудом вижу буквы, они слишком тонкие, а также неровно тонкие (т.е. заметно, что некоторые палочки толще других, и из-за этого теребит в глазах всё время). Я не знаю, что с этим сделать - я пытался играться с опциями anti-aliasing, но это не очень помогло. Менять дифолтные шрифты? Но на какие? Проблема ли это именно True-Type шрифтов, связано ли это как-то с Xft? Если кто-то знает, как можно этому помочь, отзовитесь.

Рука бойцов писать устала. О клавиатуре, настройке раскладок и выборе мейлера - в другой раз.

Date: 2003-08-08 03:28 am (UTC)
From: [identity profile] dionz.livejournal.com
<font size=-1> увеличивает шрифт (насколько мне известно) во всех броузерах при жёстко прописанном размере шрифта (в CSS) меньше стандартного...

Date: 2003-08-08 03:36 am (UTC)
From: [identity profile] avva.livejournal.com
Не знаю, я в CSS плохо разбираюсь. Я знаю вот что: когда я использую <font size=-1> (или чаще <font size=-2>) в своих записях, довольно часто, то раньше всё нормально показывалось в моей Опере; в Мозилле с этим "багом" или не багом показывалось увеличивало шрифт, а сейчас опять уменьшает, и в Мозилле тоже, как на странице дневника, так и на странице комментов (пример). При этом на обоих видах страниц размер шрифта жёстко прописан в CSS, если я правильно понимаю.

Date: 2003-08-08 03:43 am (UTC)
nine_k: A stream of colors expanding from brain (Default)
From: [personal profile] nine_k
Длиннее, но изящнее, imho, будет <span style="font-size: smaller">...
Работает неплохо, кажется.
Или просто <small> использовать.

Date: 2003-08-08 03:46 am (UTC)
From: [identity profile] avva.livejournal.com
Век живи, век учись ;)
Спасибо, я поиграюсь с этими вариантами, и подумаю.

Date: 2003-08-08 03:47 am (UTC)
From: [identity profile] polter.livejournal.com
Скажем, если я захожу в какой-то дневник в ЖЖ, в котором стиль сделан так, что всё показывается на чёрном фоне, то я просто с трудом вижу буквы, они слишком тонкие, а также неровно тонкие (т.е. заметно, что некоторые палочки толще других, и из-за этого теребит в глазах всё время). Я не знаю, что с этим сделать - я пытался играться с опциями anti-aliasing, но это не очень помогло. Менять дифолтные шрифты? Но на какие? Проблема ли это именно True-Type шрифтов, связано ли это как-то с Xft? Если кто-то знает, как можно этому помочь, отзовитесь.

дело во фритайпе. все, в принципе, описано на freetype.org (http://www.freetype.org/patents.html)
его надо бы пересобрать, включив опцию (уже не помню какую, в гугле можно поискать)

Date: 2003-08-08 03:50 am (UTC)
From: [identity profile] polter.livejournal.com
правильный рецепт нашелся в docs/TRUETYPE в исходниках freetype

Date: 2003-08-08 03:53 am (UTC)
From: [identity profile] avva.livejournal.com
Большое спасибо, обязательно прочитаю, пересоберу и отчитаюсь ;)

Date: 2003-08-08 04:13 am (UTC)
From: [identity profile] avva.livejournal.com
К сожалению, это не то, по-видимому: мой freetype скомпилирован с нужной опцией:

append-flags "${CFLAGS} -DTT_CONFIG_OPTION_BYTECODE_INTERPRETER"

(из файла, контролирующего постройку данного пакета в Gentoo)

$ grep TT_Goto_CodeRange /usr/lib/libfreetype.so
Binary file /usr/lib/libfreetype.so matches

(проверка того, что байткод-компилятор был построен, взята из того же файла - моя библиотека проходит проверку).

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

Date: 2003-08-08 08:39 am (UTC)
From: [identity profile] oblomov-jerusal.livejournal.com
Может, попробовать фиребирд без Xft? freetype в нем включается так:
в home directory он должен создать каталог .phoenix/default (если создавали user profiles, замените default на имя профиля). В нем должен быть один каталог с непроизносимым именем вроде bwda81ee.slt В этом каталоге нужно создать файл с именем user.js и в нем написать:

pref("font.FreeType2.enable",true);
pref("font.directory.truetype.1","path каталога, где лежат truetype фонты");
pref("font.directory.truetype.1","другой каталог");
и т.д. (4 каталога точно можно).

Еще там есть опции font.FreeType2.autohinted font.FreeType2.unhinted (булевы) font.antialias.min (числовая).

Поправка

Date: 2003-08-08 09:40 am (UTC)
From: [identity profile] oblomov-jerusal.livejournal.com
После строки с truetype.1 в следующей должно быть truetype.2 и т.д.

Date: 2003-08-10 12:42 pm (UTC)
From: [identity profile] avva.livejournal.com
Собственно, именно когда он был построен без Xft, он действительно серьёзно глючил. Поэтому я и убрал прекомпилированную версию (к-я была без Xft, и использовала сама FreeType) и построил сам, навязав поддержку Gnome2 и Xft2.

Date: 2003-08-08 04:54 am (UTC)
From: [identity profile] dima-stat.livejournal.com
Просто бинарник фареберда скорее всего все-еще собран с gtk (а не gtk2) пропатченным для поддержки АА, бо фареберд в дженту имел со второй gtk определенные траблы. При компиляции-же используются библиотеки заданные USE=".." в /etc/make.conf, т.е. как правило gtk2. Отсюда разница (возможно). Выяснить довольно просто эмпирическим путем: прописать для gtk и gtk2 разные темы, запустить фареберд и глянуть на ее морду.
Кроме того, gtk (gnome?) пользуют и какие-то свои установки для фонтов (прописанные в /etc, забыл где точно), что порой приводит к довольно неожиданным..хм..результатам после апгрэйда некоторых библиотек (особенно если играться с анстэйбл версиями).

Date: 2003-08-08 05:03 am (UTC)
From: [identity profile] avva.livejournal.com
Дело не только в этом - можно пользоваться gtk вместе с Xft2. Бинарник файрберда вообще не пользовался Xft2, он пользовался напрямую FreeType своим каким-то способом (а пользовался ли он gtk - не знаю, gtk2 точно нет). Когда я строил его заново, я действительно сказал ему USE="gtk2" emerge mozilla-firebird, чтобы обеспечить использование gtk2. Проблем пока никаких нет, кроме собственно плохого рендеринга на тёмном фоне (но это не только в Firebird такая проблема, а везде).

Date: 2003-08-08 05:53 am (UTC)
From: [identity profile] dima-stat.livejournal.com
можно пользоваться gtk вместе с Xft2

Насколько мне известно gtk в родном виде вообще не поддерживает АА. Есть патчи с поддержкой, но пользуют ли они xft2, FreeType или еще что - не знаю.

Проблем пока никаких нет, кромe

Проблемы могут быть с джавой - проверте (несовместимые бинарники - разные gcc и glibc)

Date: 2003-08-08 04:57 am (UTC)
From: [identity profile] oort.livejournal.com
...седьмой Оперой. И действительно, она установилась и отлично побежала...
   Абсолютно не в тему. Я довольно регулярно замечаю у вас глагол `побежать' в таком контексте. При том, что больше ни у кого я такого употребления не встречал (на русском языке -- по-английски-то to run в таком смысле употребляется очень часто). А вы сами встречали у других такое употребление, или это у вас возникло случайно, как калька с английского?
   Еще раз извините, что совсем не на тему вопроса, но я сам сейчас бьюсь примерно с той же проблемой -- на старой системе, 1997-8, не помню, года выпуска все работает нормально, но вот попробовал дома таки проапгрейдиться, и пока что со шрифтами до конца не справился. При том, что я старый оперофил и ни с какими мозиллами изменять родной опере не собираюсь. :)

Date: 2003-08-10 04:48 am (UTC)
From: [identity profile] avva.livejournal.com
Я думаю, что "побежать" и "бежать" у меня - стихийная калька с английского, хотя, мне кажется, и у других я тоже такое словоупотребление встречал.
From: [identity profile] payalnik.livejournal.com
А то ведь бравзера - не самый еще гемор.
From: [identity profile] greenrat.livejournal.com
Поддерживаю, я до сих пор не могу своей красной шапке приделать НОРМАЛЬНЫЙ драйвер видеокарты Ge ForCe4, а ведь не сказать, что карточка говно, из этого вытекает, что linux слишком уж open source: делай всё сам и только тогда что-нить получится. Абыдна, да?
From: (Anonymous)
A chto NVIDIA sobstvennyje drivery ne rabotajut ?
From: [identity profile] payalnik.livejournal.com
Ну меня больше напрягает что нет фотошопа, с русским везде гемор (фидо даже настраивать боюсь), и падает все конкретно по жизни. Не хочу себе создавать гемор пока жизнь не прижала.
From: (Anonymous)
Для того чтобы включить АА только для больших, маленьких и курсивных шрифтов нужно бросить в /etc/fonts файл local.conf следующего содержания: 8 14 roman false ------- Hamlet
From: (Anonymous)
Для того чтобы включить АА только для больших, маленьких и курсивных шрифтов нужно бросить в /etc/fonts файл local.conf следующего содержания:

<!-- Turn off antialiasing for roman fonts in the 9-14 pt. range -->
<match target="font">
<test qual="all" name="size" compare="more">
<int>8</int>
</test>
<test qual="all" name="size" compare="less">
<int>14</int>
</test>
<test qual="all" name="slant" compare="eq">
<const>roman</const>
</test>

<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>


-------
Hamlet

Date: 2003-08-08 10:02 am (UTC)
From: [identity profile] cema.livejournal.com
1. Вопрос про firebird: хорошо ли там поддерживаются пароли? А то в bugs у них было указано, что пока проблемы.

2. <font size=... это html, и он должен работать и в отсуствие css, поэтому этот баг действительно фича, а почему работает <small> ,я не знаю. :-)

Date: 2003-08-09 05:44 am (UTC)
From: [identity profile] olegart.livejournal.com
Password manager сейчас в активной разработке. На той неделе в Mozilla Weekly просили протестировать экспериментальную сборку с новым PM, да и в Firebird Roadmap доведение до ума PM значится как цель к релизу 0.8...
В общем, пока я бы на него полагаться не стал.

Date: 2003-08-10 04:18 pm (UTC)
From: [identity profile] avva.livejournal.com
Не знаю, я никогда не пользуюсь сохранением паролей в браузере.

Date: 2003-08-09 08:12 am (UTC)
From: [identity profile] virtuallight.livejournal.com
Вот эта линка:
javascript: function q(obj){ var i; var t = obj.childNodes; for(i = 0; i < t.length;i++){q(t.item(i));}; if (obj && obj.style){obj.style.color='#000000'; obj.style.background='#ffffff'}}; q(document.body); alert('q')
сделает документ черно-белым ;)
У меня она в букмаркс лежит.
Только для документов со фреймами ее надо немного изменить.
И да, еще - Mozilla/Win32 она рушит иногда - глюки в Мазилле. Mozilla Firebird в этом замечен не был ;)

January 2026

S M T W T F S
    1 23
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 2nd, 2026 08:43 pm
Powered by Dreamwidth Studios