ChromeOS — в приложениях Linux размыты шрифты

У меня подключен 4к-монитор, а на самой ChromeOS шрифты выглядят отлично и четко:

Но все приложения, работающие на виртуальной машине Linux, имеют уродливые, размытые шрифты:

Есть ли способ сделать шрифты для приложений Linux такими же, как в основной системе ChromeOS?

1 ответ

Очевидно, что на вашей виртуальной машине не установлено собственное разрешение.

В виртуальных машинах вы должны убедиться, что возможности вашего физического дисплея передаются в виртуальную машину, чтобы автоматическое обнаружение Linux могло сделать все остальное.

Если проблема не в этом, возможно, включены функции компенсации высокого разрешения:

Вам следует посмотреть конфигурацию «параметров отображения» вашего Linux на виртуальной машине. Часто доступны какие-то настройки масштабирования (наличие и внешний вид зависят от вашего дистрибутива Linux):

  • «Масштаб пользовательского интерфейса» (установлен на 100 % или «нормальный»)
  • Элементы управления дробным масштабированием

В командной строке вы можете проверить

      xrandr --query

Чтобы получить больше информации.

Некоторые примеры выводаxrandr --query:
(интерес представляет «текущее» значение.)

      Screen 0: minimum 320 x 200, current 1920 x 2160, maximum 16384 x 16384
eDP-1 connected primary 1920x1080+0+1080 (normal left inverted right x axis y axis) 346mm x 194mm
   3840x2160     60.00*+  59.98    59.97  
   3200x1800     59.96    59.94  
   2880x1620     59.96    59.97  
   2560x1600     59.99    59.97  
   2560x1440     59.99    59.99    59.96    59.95  
   2048x1536     60.00  
   1920x1440     60.00  
   1856x1392     60.01  
   [...]
ОБНОВЛЕНИЕ: Контейнер

Как вы пишете, вы не используете виртуальную машину, но функцию контейнера CromeOS для запуска приложений Linux, настройки виртуальной машины не имеют отношения к вашему вопросу.

X-приложения и приложения Wayland обслуживаются собственным встроенным композитором Wayland в ChromOS, который называется Sommelier.

Чтобы взять на себя управление, вы запускаете Linux-приложение с помощью Sommelier в командной строке терминала ChromeOS, предоставляя среду и параметры:

      sommelier -X --scale=0.75 --dpi="120" inkscape

масштабирует дисплей. Значение, превышающее1будет иметь тенденцию размывать шрифт и объект внутри контейнера. Этот параметр имеет влияние только внутри окна контейнера.

SOMMELIER_SCALE=0.75это переменная среды, которая представляет то же, что и параметр--scale=0.75. Этот параметр должен переопределить настройку среды.

GDK_SCALE=2влияет на рабочий стол Gnome. Это компенсация Hi-DPI для всех приложений на рабочем столе Gnome, а также Sommelier/Wayland/X11 в качестве «луковой оболочки», которая оборачивает результаты Sommelier.

Многие приложения Linux считывают DPI (точек на дюйм) и компенсируют свой внутренний размер, чтобы обеспечить естественное, плавное и четкое решение проблемы Hi-DPI. Наличие правильных настроек разрешения для каждого подключенного дисплея дает вероятность того, что приложение будет отображать свой контент практически одинакового размера на всех подключенных дисплеях.

--dpi=""или не упоминая об этом, вы предоставите точные настройки DPI дисплея, известные ChromeOS, для приложения Linux, запускаемого в сомелье.

--dpi=120переопределит значение DPI, предоставленное ChromeOS.

--dpi=75,96,120,160,200,240предоставит сомелье «ведро» действительных значений DPI. Реальное значение DPI172будет передано как160в приложение Linux. Иногда это необходимо, поскольку некоторые приложения Linux принимают только некоторые дискретные значения в качестве действительных настроек DPI. Их вам придется найти и записать в «ведро», если вы столкнетесь с неожиданным изменением размера в отдельных приложениях Linux.


Чтобы «убрать» размытие в вашем приложении для Linux, вам следует сначала начать с--scale=1. И используйте только этот единственный коэффициент масштабирования.

Как не установкаGDK_SCALEглобальная настройка этой переменной будет активной, размытие, обеспечиваемое этим параметром, должно быть одинаковым во всех приложениях ChromeOS и приложениях сомелье.

Если размытие исчезло, вам следует оценить размер объектов в приложении Linux по сравнению с размером других приложений ChromeOS.

  1. Если во всех приложениях объекты слишком маленькие/большие, то это правильный параметр для настройки. Но так как это масштабирование пикселей, то любое значение больше, чем родное GDK_Scale=1.0приведет к более или менее заметному размытию. Полезны прямые факторы, такие как или .
    Обратите внимание, что просто изменениеGDK_Scaleв терминале не будет влиять на другие приложения CromeOS. Это вам нужно изменить в глобальных настройках.

  2. Если неудобен только размер приложения для Linux, вам придется взвесить преимущества (недостатки)--scale=...и--dpi=....

    • --scale=<value>(илиSOMMELIER_SCALE=<value>) больше родного 1.0начнет размываться. Здесь также прямые факторы, такие как1.5или2помогут сделать размытие менее заметным.
    • --dpi=<value>исправит используемое приложением разрешение, а изменение дисплея при настройке нескольких мониторов может привести к нежелательным скачкам отображаемого размера. Но он дает возможность запретить размытие и получить желаемый размер.

Пожалуйста, оставьте отзыв о результатах и ​​решениях вашего теста.

Другие вопросы по тегам