>>>>> Artem Chuprina <[email protected]> writes:

[…]

 > А теперь призовая игра.  Она, кстати, не только для xrdb призовая, и
 > более того, может оказаться, что для гнома она окажется на порядок
 > более призовой.  А может и нет, вопрос в том, в каких единицах оно
 > поймет шрифт.  Но для xrdb оно точно призовое.  Допустим, у нас два,
 > а лучше три одновременно подключенных монитора, и по
 > жабно-историческим причинам у них X_RESOLUTION и Y_RESOLUTION разные.
 > Было бы клево, чтобы размер шрифта был на обоих мониторах одинаковый
 > хотя бы в линейных единицах (в идеале, конечно, угловых, но вот
 > данных о расстоянии от глаз до монитора у нас точно нет — зато есть
 > неплохие шансы, что оно близкое).  А вовсе не в пикселах, которые по
 > размеру могут отличаться в полтора раза с легкостью.

        Не в пикселах?  Почему бы и нет.

XClock.face: courier-14.0
UXTerm.vt100.faceName: courier
UXTerm.vt100.faceSize: 14.0
!! etc.

        Будет ли это работать с несколькими физическими мониторами,
        соответствующими одному X display — не знаю.  Но при запуске
        после $ xrandr --dpi XXX — желаемый эффект наблюдается.

        Есть также подозрение, что такое поведение можно обеспечить и
        при использовании «классических» X-шрифтов (e. g., ниже.)
        Другое дело, что в базе данных (растровый) шрифт нужного кегля
        почти наверняка окажется представлен одной—двумя записями
        (например, 75 и 100 dpi.)

!! Use a suitable 20pt Terminus font
UXTerm.vt100.font:  -xos4-terminus-medium-r-normal--*-200-*-*-c-*-iso10646-1

$ xlsfonts -fn "-xos4-terminus-medium-r-normal--*-200-*-*-*-*-iso10646-1" 
-xos4-terminus-medium-r-normal--20-200-72-72-c-100-iso10646-1
-xos4-terminus-medium-r-normal--28-200-100-100-c-0-iso10646-1
$ 

 > Опять же в идеале программа должна бы уметь перестраивать шрифт при
 > попадании с одного экрана на другой, даже если ее саму при этом
 > никуда не таскали (ситуация «вывел workspace N на второй экран»).  Но
 > на этом я уже не настаиваю от слова совсем.  Это уже очень хорошие
 > программисты нужны.

        JFTR, X-ресурсы предназначены для решения частной задачи передачи
        настроек от пользователя X-приложениям.  Причем под настройками
        понимаются пары (ключ, значение) и (шаблон, значение).  С этой
        задачей X-ресурсы как будто бы худо-бедно справляются.
        (Пользуясь случаем напомню, что у «Tk-ресурсов» в кортеж входит
        еще и priority.  X-ресурсам оный бы тоже не повредил, но — увы.)

        Далее, есть libXt, которая, в числе прочего, включает поддержку
        некоторого количества типовых ключей и форматов значений.
        Использование этой библиотеки, однако, не является ни необходимым
        для поддержки механизма X-ресурсов (Tk обходится без нее, IIRC),
        ни достаточным для обеспечения желаемых функций.  (Вроде Xft.)

        Другими словами, то, что libXt поддерживает .geometry: и .font:,
        но не (AIUI) .faceSize: еще не означает, что «классическое»
        X-приложение обречено на использование одних лишь «стандартных»
        ресурсов.

 > Есть и другая задача, где надо одинаково в долях размера экрана.  Это
 > когда один экран у тебя, а другой у проектора, и на них одно и то же.

        Рискну предположить, что задачу отображения одного framebuffer
        на два экрана разного разрешения в общем случае окажется проще
        решить используя xrandr(1) (а именно — --scale=; или же и вовсе
        --transform=.)

-- 
FSF associate member #7257  np. Heartland (tranciano remix) — Chronblom

Ответить