Re: X Logical Font Description и HiDPI

2021-02-04 Пенетрантность Nefedov . Yury

On Thu, 4 Feb 2021, Andrey ``Bass'' Shcheglov wrote:



  Совершенно непонятно, как это будет работать если подключено
  два монитора с сильно разным пространственным разрешением.


Если Вы хотите, чтобы изображение (напр., окно) при переносе с одного монитора 
на другой сохраняло свои геометрические размеры (которые можно измерить, 
приложив линейку к монитору), то это достигается включением коэффициента 
масштабирования (scale factor), обычно дробного, для одного из мониторов. 
Расширение `XRandR` и утилита `xrandr` так умеют.



 Нет. Мне бы хотелось, что бы шрифты отрисовывались в соответствии с
 тем dpi которое имеет устройство. Масштабируемость шрифтов не
 сводится к простому scale factor.

 Кстати, а почему такое решение не подходит вам?
 Задаете неправильный dpi, получаете шрифты (неважно как)
 а потом скалируете до нужного размера.

 Прошу прощения. Вряд ли это приемлемое решение.

 Мне в связи с этим разговором стало интересно, а как поступают
 в случае с LCD проекторами? Там, как раз, "раздутие" шрифтов, что-то
 само собой разумеющиеся. При этом величина такого "раздутия" заранее
 никому не известна. На каких-нибудь больших конференциях экраны
 весьма большие. При этом надо бы сохранить презентабельность и в случае
 обычного формата экрана. Вдруг ковид и все читают с экрана телефона :)
 Похоже, что в beamer именно поэтому используют рубленые (sans-serif)
 шрифты.
Ю.

Re: X Logical Font Description и HiDPI

2021-02-04 Пенетрантность Maxim Nikulin

On 03/02/2021 17:20, Andrey ``Bass'' Shcheglov wrote:


*Собственно, вопрос*. Есть ли способ, не зашивая жёстко в 
пользовательские настройки для каждого отдельного ресурса разрешение 
X-сервера, обойтись меньшей кровью, чем рекомендует автор статьи 
"Sharing Xresources between systems" 
?>

Поддержка препроцессора в `xrdb`, увы, всё-таки достаточно убога.


На всякий случай уточню, действительно ли такой вариант кажется
неподходящим:

XTerm*VT100.utf8Fonts.font: -monotype-courier
new-medium-r-normal--0-120-DPY_X-DPY_Y-m-0-iso10646-1

Хотя, конечно, неприятно, что DPY_X никто не приготовил (X_RESOLUTION на
метр, а не на дюйм) и придется писать что-то типа

#if HEIGHT == 2160
#define DPY_Y 162
#else
#define DPY_Y 96
#endif

Ну и непонятно, что делать, когда рядом стоят 2 монитора с разным 
разрешением.


On 04/02/2021 04:49, Andrey ``Bass'' Shcheglov wrote:

Если Вы хотите, чтобы изображение (напр., окно) при переносе с одного
монитора на другой сохраняло свои геометрические размеры (которые
можно измерить, приложив линейку к монитору), то это достигается
включением коэффициента масштабирования (scale factor), обычно
дробного, для одного из мониторов. Расширение `XRandR` и утилита
`xrandr` так умеют.


Речь же про --scale и --scale-from у xrandr? Останутся ли при этом 
четкими линии и шрифты, для которых выключен антиалиасинг? Или это 
удовольствие начинается только с 4K, а там, где меньше, будет заметное 
мыло? Мне показалось, что программы просто начали отрисовывать картинку 
как будто просто поменялось количество пикселей на экране. То ли я 
неправильно попробовал, то ли эффект ровно тот же, что и выбрать не 
родное разрешение монитора.