Вопрос или проблема
Я использую xorg из macports на iMac 27″ и пытаюсь включить упорядочивание субпикселей. Я изменяю ~/.fonts.conf, но переменная не обновляется. У кого-нибудь есть предложения, как это включить?
$ xdpyinfo -ext RENDER | grep sub-pixel
Screen 0 (sub-pixel order Unknown)
$ fc-cache
$ vi .fonts.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>~/.fonts/</dir>
<match target="font">
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font">
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>
</fontconfig>
Пробовал этот раздел также без эффекта:
<match target="font">
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>
$ xdpyinfo -ext RENDER | grep sub-pixel
Screen 0 (sub-pixel order Unknown)
Я вижу, что эта команда может изменить рендеринг в OSX:
$ defaults -currentHost write -globalDomain AppleFontSmoothing -int 2
.
Ответ или решение
Вопрос о включении порядка субпикселей в среде XWindows на Mac требует основательного понимания тонкостей как X-сервера (xorg), так и macOS. Ваша текущая ситуация заключается в использовании xorg от MacPorts на iMac 27 дюймов, где вам необходимо реализовать корректное отображение текста с учетом субпиксельной антивиалиации.
Теоретическая часть (Theory)
X-сервер в среде XWindows предоставляет абстракцию интерфейса пользователя для Unix-подобных систем. Он поддерживает различные расширения для улучшения графического отображения, одно из них — RENDER-расширение. Это расширение отвечает за высококачественное текстовое и графическое рендеринг, включая субпиксельное сглаживание.
Sub-pixel rendering (субпиксельное рендеринг) — это технология, которая использует структуру пикселя на уровне аппаратного обеспечения для улучшения четкости шрифтов на дисплее. На LCD-дисплеях пиксели состоят из красного, зеленого и синего субпикселей, и, корректно настроив порядок этих субпикселей, вы можете добиться значительного улучшения визуального качества текстов.
Однако, X-сервер должен иметь возможность поддержания и применения этих настроек. Если xdpyinfo отображает "sub-pixel order Unknown", это указывает на то, что ваш X-сервер не распознает или не применяет субпиксельные настройки.
Пример (Example)
На macOS управление шрифтами существенно отличается от Linux или других Unix-систем. Это связано с внутренними механизмами самой macOS для управления графикой и текстами. Преимущество и, возможно, сложность работы в macOS заключается в необходимости обеспечения совместимости между хост-системой и установленным ПО (в вашем случае xorg через MacPorts).
Ваш конфигурационный файл ~/.fonts.conf
настроен с параметром rgba
, установленным в rgb
. Это говорит системе, что вы хотите использовать RGB порядок субпикселей. Однако, simple изменение этого файла может не соблюдать всех требований RENDER-расширения X-сервера. Утилита fc-cache
обновляет кэш шрифтов, однако, это не гарантирует обновления конфигурации на уровне X-сервера.
Настройка defaults
в macOS влияет на собственные системные настройки рендеринга шрифтов и не обязательно влияет на работу xorg через MacPorts. Это изменение на уровне системы может быть недостаточным или вовсе неэффективным для xorg.
Применение (Application)
Чтобы разрешить вашу проблему с нераспознанным субпиксельным порядком, рассмотрим следующие шаги:
-
Проверьте X-сервер и его параметры: Убедитесь, что ваша версия xorg и все ее компоненты, включая RENDER-расширение, обновлены и корректно установлены. Пакеты могли быть собраны без поддержки специфических функций, таких как субпиксельное сглаживание.
-
Конфигурация шрифтов: Помимо редактирования
~/.fonts.conf
, убедитесь, что глобальная система шрифтов (например, конфигурация fontconfig) корректно настроена и взаимодействует с X-сервером. Возможно, потребуется добавление специфических настроек в глобальный конфигурационный файл, например/etc/fonts/fonts.conf
. -
Локализация проблемного окружения: Попробуйте протестировать систему в другом X-сервере или иной конфигурации, чтобы проверить, обусловлена ли проблема спецификой текущей настройки MacPorts. Учитывайте, что на уровне системы macOS может быть конфликт, если приложения, работающие через X-сервер, пытаются изменять то же, что и нативные настройки macOS.
-
Работа со спецификой macOS: Поскольку вы работаете через хост-основанное приложение, такое как MacPorts, проверьте взаимодействие между системными и портирующими настройками. Эта связка может иметь ограниченные возможности, которые не распознают или не передают xorg полноценную информацию о дисплее iMac.
-
Дополнительные утилиты и настройки: Рассмотрите использование утилит или дополнительных настроек для контроля рендеринга на уровне MacPorts и X-сервера. Это может включать патчи или расширения, которые поддерживаются сообществом MacPorts.
В заключение, настройка X-сервера и субпиксельного рендеринга в среде macOS с использованием MacPorts требует всестороннего подхода, учитывающего аппаратные, системные и программные аспекты. Вам необходимо удостовериться, что все слои программного обеспечения взаимодействуют корректно и совместимо с вашей целевой конфигурацией дисплея iMac.