[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: X Logical Font Description и HiDPI



Виктор, благодарю за ответ.

Нет, проблема касается только шрифтов, причём исключительно серверных -- сам X-сервер работает в правильном разрешении, что легко проверяется путём

> xdpyinfo | grep -F resolution

Соответственно, `Xft.dpi` вычисляется автоматом внутри `~/.xinitrc`, и это полностью закрывает вопрос с "клиентскими" шрифтами.

А вот что касается "серверных" шрифтов (мой исходный вопрос), то, как я написал выше, механизма, реализующего *самый распространённый пользовательский сценарий* и позволяющего запросить у сервера растеризованный шрифт с именем /M/ и размером в /N/ пунктов *в разрешении собственно сервера* (162 dpi) -- так вот, такого механизма, похоже, нет.

X-клиент должен сначала запросить разрешение экрана у X-сервера, а уже потом в соответствии с этим разрешением сформировать маску запроса шрифта, в духе

> sprintf(buf, "-monotype-courier new-medium-r-normal--*-120-%d-%d-m-*-iso10646-1", (int) resx, (int) resy);
Но так ни один X-клиент не делает: man-страницы пестрят описаниями ресурсов вида `xterm.vt100.font`.

P. S. За скрипт спасибо. Однажды я таки сяду и таки выучу Tcl =)

On 03.02.2021 17:49, Victor Wagner wrote:
> В Wed, 3 Feb 2021 13:20:54 +0300
> Andrey ``Bass'' Shcheglov <andrewbass@gmail.com> пишет:
> 
>> Всем здравствуйте.
>>
>> *Проблема*: X-сервер отдаёт серверные шрифты в фиксированном
>> разрешении 100 dpi, а не в разрешении, текущем для сервера.
> 
> Интересный вопрос - а это касается только шрифтов, или вообще всей
> информации о разрешении, которую X-сервер отдает своим клиентам?
> 
> Я в свое время с этой проблемой столкнулся и написал вот такой скриптик
> 
> https://www.wagner.pp.ru/~vitus/software/tcl/measure_screen.html
> 
> Его запускаем, измеряем сторону получившегося квадрата линейкой.
> Если вдруг там окажется не 10 сантиметров, то значит X-сервер не
> доносит до программ информацию о реальном разрешении экрана, которую
> монитор должен был ему рассказать по EDID.
> 
> В таких случаях я обычно прописываю X-серверу в командную строку
> опцию -dpi n и это помогает.

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: