LINUX.ORG.RU

Аффинные преобразования в подсистеме Core X Fonts

 ,


2

1

Читал тут давеча стандарт (XLFD Conventions, 1989 года, автор — Джим Флауэрс (Jim Flowers) из DEC) и обнаружил для себя новое.

Оказывается, в поле ptSz можно указать не просто размер шрифта в десятках пунктов (120 == 12pt), а настоящие коэффиценты матрицы (в виде [x1 x2 y1 y2]) для аффинного преобразования символов. При этом пресловутое скалярное значение 120 соответствует матричным коэффициентам [12.0 0 0 12.0] (единичная матрица, умноженная на размер в пунктах; коэффициенты с плавающей точкой; отрицательные значения задаются через тильду (~) вместо минуса (-), поскольку минус является разделителем полей в XLFD).

Применение? Элементарно. Например, так можно получить курсив из обычного шрифта. Или обратный курсив (reverse oblique).

Но можно и совсем упороться и тупо перевернуть символы (и получившийся текст, при определённой сноровке, даже можно прочитать).

А Xft или FreeType так умеет? =)

>>> Просмотр (1920x1080, 148 Kb)

★★★★

Проверено: JB ()

Как оно там, в 1995-м? :-)

Aceler ★★★★★ ()
Ответ на: комментарий от rnz

Круто, не знал.

Спасибо тебе, добрый человек, за ликбез.

Bass ★★★★ ()

Это всё конечно хорошо, вот только объясните мне, почему по-дефолту в GNU/Linux'ах шрифты — говно?

EXL ★★★★★ ()

Эт круто. Классная находка!

beastie ★★★★★ ()

А Xft или FreeType так умеет? =)

Оно хотя бы умеет не шг.

tazhate ★★★★★ ()
Ответ на: комментарий от EXL

Это всё конечно хорошо, вот только объясните мне, почему по-дефолту в GNU/Linux'ах шрифты — говно?

Потому что во всяких vendor-specific X-серверах (Xsun, Accelerated-X) по умолчанию, «из коробки» — классные TTF-шрифты ещё с середины 1990-х, а в GNU/Linux в то время (XFree86 3.x) — только растровые BDF/PCF-шрифты и никакого тебе TTF.

Первый UNIX с человеческим лицом (IRIX) — гораздо старше Mac OS X. А у GNU/Linux полностью человеческого лица никогда не будет, потому что это нужно лишь немногим (и уже десятилетия есть альтернативы).

Bass ★★★★ ()
Ответ на: комментарий от Bass

Google c Android смотрят на твой коммент с непониманием.

Собственно что есть «по-дефолту в GNU/Linux» в отношении шрифтов? Какие сборщик дистра запихнул в дистрибутив и прибил к DE, такие и будут дефолтом.

Я лично все шрифты на Droid или Roboto меняю - мне нравится, на моих дисплеях выглядят отлично.

rnz ()
Ответ на: комментарий от rnz

Собственно что есть «по-дефолту в GNU/Linux» в отношении шрифтов? Какие сборщик дистра запихнул в дистрибутив и прибил к DE, такие и будут дефолтом.

Всё верно. Но вспомни состояние «Linux Desktop» на рубеже 1990-х/2000-х.

Bass ★★★★ ()

Xft, к сожалению, умирает. Последний релиз был давно, в репе коммитов нет, поддержкой не занимаются, а старый баг (когда в urxvt и других терминалах между некоторыми символы-стрелочками vim-powerline были темные отступы в 1 px шириной) до сих пор висит в багтрекере, и надежд нет.

https://bugs.freedesktop.org/show_bug.cgi?id=47178

ns_ramesses ()
Ответ на: комментарий от ns_ramesses

а старый баг (когда в urxvt и других терминалах между некоторыми символы-стрелочками vim-powerline были темные отступы в 1 px шириной

Ты знаешь, я пытаюсь забороть аналогичную проблему (некорректно увеличенные ascent и descent) в core-подсистеме (см. здесь и здесь). Изменения произошли во freetype2-бэкенде где-то между XFree86 4.3 и X.org 6.9 (причём, если преобразовать TTF в Type 1, то проблема исчезает, но предсказуемо идёт коту под хвост весь хинтинг). К сожалению, здесь только бисекция и копание в исходниках, увы.

Bass ★★★★ ()
Ответ на: комментарий от ananas

xrandr, не?

Не. Это задолго до него, и работает на любом X-сервере.

Bass ★★★★ ()

круто, конечно

отрицательные значения задаются через тильду (~) вместо минуса (-), поскольку минус является разделителем полей в XLFD

армия костылей!

Например, так можно получить курсив из обычного шрифта.

и он будет выглядеть как говно?

Но можно и совсем упороться и тупо перевернуть символы (и получившийся текст, при определённой сноровке, даже можно прочитать).

да, типичное применение для молодых ленуксоедов ))

А Xft или FreeType так умеет? =)

хз чо они умеют, я знаю чего они достигают. ну или пытаются.

а так вообще без ретины об шрефты на монике мы только глаза ломаем. да прибудет ретина кучнопикселотворящая!

mos ★★☆☆☆ ()
Ответ на: комментарий от ananas

Оо

он вроде экран вертит? какое он отношение имеет к отрисовке отдельных элементов?

mos ★★☆☆☆ ()
Ответ на: Оо от mos

он вроде экран вертит? какое он отношение имеет к отрисовке отдельных элементов?

по идее, он может не весь экран, а только отдельные области трансформировать

ananas ★★★★★ ()

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

да ладно, не томи уже: язык выбора шрифта полон по Тьюрингу?

t184256 ★★★★★ ()
Ответ на: комментарий от ananas

а.
ну это будет тогда какой-то мега костыль - придется брать куски с текстом и как-то с ними химичить. как полосочки бумаги )

mos ★★☆☆☆ ()
Ответ на: комментарий от t184256

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

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

mos ★★☆☆☆ ()
Ответ на: комментарий от mos

довольно безумная фича, продемонстрированная тс-ом, из той же серии - а я могу правое ухо левой пяткой через ж^Hспину чесать

ananas ★★★★★ ()
Ответ на: комментарий от EXL

Потому что патенты
В федоре russianfedora-fixes - лучшие шрифты на свете

mystery ★★ ()
Ответ на: комментарий от mos

Сытрикс

Это какая по-английски? А то я не въехал чего-то.

ViTeX ★★★★ ()

квадратники на лоре. г-дь, жги.

vostrik ★★★☆ ()

Лампово! :3 Расскажи про софт, которым пользуешься.

У меня в кладовке стоит 1024x768, 17" CRT монитор, на котором оно будет смотреться куда аутентичнее. ^_~

r3lgar ★★★★★ ()
Ответ на: комментарий от r3lgar

Лампово! :3 Расскажи про софт, которым пользуешься.

Конкретно это — Debian Jessie, работающая внутри Hyper-V. Дома то же самое на голом железе. Технически, софт неважен — ты можешь получить такой же эффект хоть на Cygwin.

Достаточно лишь TTF-шрифтов (шрифты Monotype есть здесь), xfonts-utils (нужен mkfontscale, чтобы зарегистрировать шрифты в X-сервере или xfs), x11-utils (xfontsel для тестирования), ну и любой терминал, умеющий core x fonts (xterm, rxvt, dtterm).

Bass ★★★★ ()

L.o.r.

Запарили скриншоты с L.o.r.

Camel ★★★★★ ()
Ответ на: комментарий от Bass

Та не, меня не ШГ интересует, а софт. Я хочу такое окружение, а не такой ШГ. ШГ и без манируляций с начертанием торт.

r3lgar ★★★★★ ()
Ответ на: комментарий от h4tr3d

Мой коммент касался следующей части поста Bass:

А у GNU/Linux полностью человеческого лица никогда не будет, потому что это нужно лишь немногим (и уже десятилетия есть альтернативы).

В Android есть http://www.freetype.org/license.html Ну о том что там [не]GNU - https://www.gnu.org/philosophy/android-and-users-freedom.ru.html

А компоненты под GNU GPL, всё ещё есть в Android.

rnz ()

Не угадал автора по заголовку

bookman900 ★★★★★ ()

это че за оцтой такой. у меня так плохо даже в 95м не было.

bernd ★★★★★ ()
Ответ на: комментарий от r3lgar

меня не ШГ интересует, а софт. Я хочу такое окружение

Что ты имеешь в виду под окружением? Это стандартный Mwm. Dtwm из CDE будет выглядеть так же, только внизу будет панель а-ля Xfce.

Или тебе отдать .mwmrc и .Xresources?

Bass ★★★★ ()
Ответ на: комментарий от Bass

Это стандартный Mwm

Один из множества форков twm?

Что ты имеешь в виду под окружением?

Вместо Mwm я таки накачу twm, ибо нефиг. А интересует меня софт, кроме терминала, естественно (xterm — убожество, а rxvt нужно уметь готовить). Или у тебя кроме терминала ничего нет, и весь софт консольный?

r3lgar ★★★★★ ()
Ответ на: комментарий от Hrenomoto

ТС, попробуй так: [12.0 12.0 0 12.0]

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

Bass ★★★★ ()
Ответ на: комментарий от r3lgar

xterm — убожество, а rxvt нужно уметь готовить

Думаю, ты просто не умеешь готовить xterm. Он так же, как и rxvt, умеет 256 цветов, Unicode и клиентские шрифты с AA через Xft. Собственно, rxvt — это xterm, из которого зачем-то выпилили поддержку Tektronix, уменьшив memory footprint на немыслимые 8 kB.

У Фомы Дикого (Thomas Dickey) есть замечательный набор тестов для эмуляторов терминалов — vttest. Для сравнения, запусти его на xterm и на rxvt/konsole/gnome-terminal/you-name-it и сравни, сколько тестов будет позорно провалено во втором случае.

Или у тебя кроме терминала ничего нет, и весь софт консольный?

Да нет, есть. До бениной мамы. Из дебиановских репозиториев. Только (а) пихать его на скриншот не было смысла, ибо целью были как раз ШГ, и (б) какой смысл «ставить софт, как у ТС'а», если ты сам можешь поставить всё то, что тебе нужно для конкретной задачи? Это если я правильно понял вопрос.

Bass ★★★★ ()
Ответ на: комментарий от Bass

Думаю, ты просто не умеешь готовить xterm.

Мышь в xterm работает чуть хуже, чем никак, а я частенько юзаю primary clipboard. ncurses софт в нём работает приблизительно так же.

vttest

Ну да, тесты не проходит мой терминал, но это не значит, что он говно, хоть он и говно. Но xterm говнее иногда.

какой смысл «ставить софт, как у ТС'а», если ты сам можешь поставить всё то, что тебе нужно для конкретной задачи?

Основной обвес — это fdisk, vim и busybox. Интересует ещё живой аутентичный софт, а не всякая гуйня, которой всегда можно обмазаться (НЕНАВИЖУ, что в гуйне ^W не удаляет слово, а закрывает окно!).

GIMP, Blender, Inkscape, торрент клиент и прочее — это домашний софт, его в аварийно-восстановительный дистр пихать не надо, а вот обмазаться мертвячинкой ламповым софтом вполне себе можно, на юзабилити оно не повлияет.

r3lgar ★★★★★ ()

в сортах ШГ не разбираюсь, но по мне так в Linux давно хорошие шрифты - для меня по крайней мере все годные, плохих не встречал... не ценитель я

I-Love-Microsoft ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.