LINUX.ORG.RU

Как использовать xft шрифты в CDE

 , ,


1

2

Попробовал по инструкции https://webcache.googleusercontent.com/search?q=cache:dBGHqzNbDHIJ:https://sourceforge.net/p/cdesktopenv/wiki/FontsWithXFT/&cd=1&hl=ru&ct=clnk&gl=ru указать в ~/.Xresources в /etc/dt/config/Xconfig в /usr/dt/config/Xconfig и эффект нулевой.

★★★★★

Последнее исправление: vbcnthfkmnth123 (всего исправлений: 1)

UI CDE разрабатывался тогда, когда Xft ещё не было и в помине.

Соответственно, через UI можно настроить только «серверные» шрифты.

Следовательно, единственный способ — это вручную через X resources (это вот тот самый renderTable). Этот способ никак не связан с CDE — это относительно «новая» функциональность, которая появилась в Motif 2.3.

Упомянутый тобой документ — едва ли не единственное руководство на тему (кстати, необязательно тащить из архива, вот современная версия: https://sourceforge.net/p/cdesktopenv/wiki/FontsWithXFT/). Единственное оно потому, что CDE, Motif и «клиентские» шрифты сейчас использует ровно один человек. Автор цитируемого тобой текста.

Нет времени разбираться самому, но подозреваю, что у тебя просто не «цепляются» новые значения ресурсов. Для того, чтобы они перечитались, нужен перезапуск приложения (в твоём случае это dtsession или dtwm). Я бы начал с настройки отдельного Motif-приложения, которое в целях отладки легко перезапустить 100500 раз, ибо настройка X-ресурсов — это всегда метод проб и ошибок. Поэтому бери dtterm или dtcalc, при необходимости вооружайся strace — и вперёд.

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

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

Я глянул исходники приложения на Motif c поддержкой XFT. Если кратко то, то что ты мне посоветовал про определить на уровне сервера будет работать только если поддержка XFT сделана на уровне приложения.

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

Я потестил, у меня только dtlogin с шрифтами получилось завести, походу остальное придется через патчи заводить. Как раз для dtwm есть донор.

vbcnthfkmnth123 ★★★★★
() автор топика
Последнее исправление: vbcnthfkmnth123 (всего исправлений: 1)
Ответ на: комментарий от vbcnthfkmnth123

Завелось для всех программ на motif кроме dtwm. Рецепт такой В $HOME/.dt/sessions/sessionetc добавить

exec xrdb  $HOME/.Xresources &

& Обязательно. Без него CDE зависнет.

В $HOME/.Xresource добавить

*.renderTable: variable
*.renderTable.variable.fontName: DejaVu Sans
*.renderTable.variable.fontSize: 12
*.renderTable.variable.fontType: FONT_IS_XFT

Для dtlogin надо указать отдельно в /etc/dt/config/Xconfig

*.renderTable: variable
*.renderTable.variable.fontName: DejaVu Sans
*.renderTable.variable.fontSize: 12
*.renderTable.variable.fontType: FONT_IS_XFT
vbcnthfkmnth123 ★★★★★
() автор топика
Последнее исправление: vbcnthfkmnth123 (всего исправлений: 2)
Ответ на: комментарий от vbcnthfkmnth123

Возможно, dtwm просто стартует раньше, чем выполняется xrdb.

Один из способов решения — перезапустить dtwm, не перезапуская X-сервер (напр., с помощью отправки команды f.restart).

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

Да, попробовал рестартануть dtwm через пункт контекстного меню «Restart Workspace Manager ...» и завелось. Теперь осталось только понять где это меняется в настройках.

vbcnthfkmnth123 ★★★★★
() автор топика
Последнее исправление: vbcnthfkmnth123 (всего исправлений: 3)
Ответ на: комментарий от Shadow

Можно даже не использовать bitmap-шрифты (PCF). Можно подключить монотайповские шрифты (TTF) — Arial, Verdana, Tahoma, вот это всё.

Они создавались в эпоху Windows 95, когда экраны были низкого разрешения, а антиалиасинг не всегда был доступен. Соответственно, была проделана адова работа по ручной настройке хинтинга, чтобы символы прилично выглядели даже при небольших размерах растра (напр., 12px).

Более поздние TTF-шрифты, доступные в Windows NT 6+ (Consolas, Segoe UI) уже рассчитаны на обязательный антиалиасинг (причём предпочтительнее субпиксельный) и упомянутыми качествами уже не обладают.

Старые TTF-шрифты даже без антиалиасинга выглядят превосходно, особенно на экранах высокого разрешения.

Единственное — надо будет переключить растеризатор FreeType, чтобы использовалась предыдущая версия алгоритма.

Bass ★★★★★
()
Последнее исправление: Bass (всего исправлений: 2)
23 ноября 2022 г.
Ответ на: комментарий от vbcnthfkmnth123

Для dtlogin надо указать отдельно в /usr/dt/config/en_US.UTF-8/Xresources

Для кодировки en_US.UTF-8. Ранее про /etc/dt/config/Xconfig было указано неверно.

*.renderTable: variable
*.renderTable.variable.fontName: DejaVu Sans
*.renderTable.variable.fontSize: 12
*.renderTable.variable.fontType: FONT_IS_XFT

vbcnthfkmnth123 ★★★★★
() автор топика
21 ноября 2023 г.