Программирование

Как убрать размытый шрифт в WebStorm и VSCode на Ubuntu

Пошаговый план решения размытых шрифтов в WebStorm и VSCode на Ubuntu: настройка DPI, масштабирование и JVM‑флаги для чёткого отображения в IDE.

Как исправить размытый шрифт в WebStorm и VSCode на Ubuntu после перехода с Windows 10? Какие настройки DPI, масштабирования и параметры JVM нужно изменить, чтобы шрифты отображались чётко?

Размытый шрифт в WebStorm и VSCode на Ubuntu после перехода с Windows 10 — это типичная проблема, связанная с неравномерным масштабированием и настройками JVM. Ниже приведён пошаговый план решения, который объединяет рекомендации из официальных источников JetBrains, Microsoft и сообществ Linux.


Краткий ответ

Чтобы устранить размытость шрифтов в WebStorm и VSCode на Ubuntu, нужно:

  1. Установить масштабирование системы в 100 % (или 150 %/200 % без дробных значений) и задать DPI = 96 (или 144 для 150 %) через xrandr/GNOME‑Settings.
  2. Включить в WebStorm/IntelliJ‑IDEA JVM‑флаги -Dsun.java2d.uiScale.enabled=false, -Dsun.java2d.dpiaware=true, -Dsun.java2d.opengl=true и убедиться, что опция «Override default font» отключена.
  3. Для VSCode задать переменную GDK_DPI_SCALE=1 (или запустить code --force-device-scale-factor=1.0) и установить window.zoomLevel = 0 в settings.json.

В результате шрифты в обоих IDE будут четкими и читабельными.


Содержание


1. Почему возникает размытость

Размытый шрифт появляется, когда система и приложение работают с разными значениями DPI. В Windows 10 масштабирование 125 %/150 % обычно корректно обрабатывается, но в Ubuntu (особенно при Fractional Scaling 125 %) многие X11‑приложения, включая WebStorm и VSCode, «смешивают» пиксели и теряют резкость. Также причина может быть в настройках JVM, которые по умолчанию применяют собственный масштаб, несовместимый с системным DPI.

Согласно ответу на Super User, проблема часто связана с тем, что OpenJDK не поддерживает корректную anti‑aliasing при Fractional Scaling 125 %: “OpenJDK (patched) is useless; Oracle JDK works”Super User.


2. Настройка масштабирования и DPI в Ubuntu

  1. Выберите целевое масштабирование
    • В GNOME → Settings → Devices → Displays установите Scale = 100 % (или 150 %/200 % без дробных значений).
    • Если нужна более высокая плотность, используйте 150 %/200 % вместо 125 % (Fractional 125 % обычно приводит к размытости).

  2. Установите DPI вручную

    bash
    # Узнаем текущий размер резолюции
    xrandr | grep '*' | awk '{print $1}'
    # Предположим 1920x1080
    xrandr --output <DISPLAY> --dpi 96   # 96 dpi = 100 %
    

    Или для 150 %:

    bash
    xrandr --output <DISPLAY> --dpi 144
    
  3. Проверьте переменную GDK_DPI_SCALE

    bash
    echo $GDK_DPI_SCALE   # должно быть 1
    

    Если переменная установлена в 1.25, выключите её (unset GDK_DPI_SCALE или обнулите в .profile).

Как отмечено в сообщении Ask Ubuntu, fractional scaling может «размыть» не все приложения, но только браузеры, в то время как большинство X11‑приложений работают корректно при GDK_DPI_SCALE=1. Ask Ubuntu.


3. Исправление WebStorm (и других JetBrains IDE)

  1. Установите Oracle JDK

    bash
    sudo apt install oracle-java17-installer
    sudo update-alternatives --config java
    

    (OpenJDK 17+ иногда тоже работает, но Oracle JDK 17 – лучший вариант).

  2. Настройте JVM‑флаги
    В каталоге ~/.WebStorm<version>/config/ найдите файл WebStorm64.vmoptions (или WebStorm.vmoptions). Добавьте/измените следующие строки:

    -Dsun.java2d.uiScale.enabled=false
    -Dsun.java2d.dpiaware=true
    -Dsun.java2d.opengl=true
    -Dsun.java2d.noddraw=true
    

    Объяснение:

    • sun.java2d.uiScale.enabled=false отключает внутреннее масштабирование, чтобы IDE использовала системный DPI.
    • sun.java2d.dpiaware=true заставляет Java учитывать DPI.
    • sun.java2d.opengl=true ускоряет рендеринг и повышает качество шрифтов.
  3. Проверьте настройки UI
    В IDE → Settings → Appearance & Behavior → Appearance снимите галочку «Override default font» (или установите желаемый размер вручную).

  4. Перезапустите IDE.

Изначально JetBrains рекомендовали отключить sun.java2d.uiScale.enabled, как отмечено в официальной статье о HiDPI‑конфигурации: “If you experience problems with scaling, try setting UI font to default … add -Dsun.java2d.uiScale.enabled=false”JetBrains Support.


4. Исправление VSCode

  1. Установите переменную GDK_DPI_SCALE
    В файле ~/.config/Code/User/settings.json добавьте:

    json
    {
      "window.zoomLevel": 0,
      "editor.fontSize": 14,
      // Убедитесь, что не задействован масштаб
      "window.forceDark": false
    }
    

    И в глобальном профиле:

    bash
    export GDK_DPI_SCALE=1
    
  2. Запускайте VSCode с флагом

    bash
    code --force-device-scale-factor=1.0
    

    Это заставит Electron‑движок использовать системный DPI без дополнительного масштабирования.

  3. Проверка DPI

    bash
    glxinfo | grep "display size"
    

    Должен показать правильный размер.

Как сообщает Codelantis, включение sun.java2d.opengl помогает не только WebStorm, но и VSCode: «Sometimes, blurry text on IntelliJ IDEA (or WebStorm) on Ubuntu can be resolved by setting the sun.java2d.opengl JVM flag to true when running your IDE» Codelantis.


5. Дополнительные советы и обходные пути

  • Переход на X11: Если вы используете Wayland, переключитесь на X11‑сессию, так как JetBrains IDE (до версии 2023.3) не полностью поддерживают Wayland.
  • Установка libxrender1: Некоторые пользователи отмечают, что отсутствие библиотеки libxrender1 приводит к размытости. Установите её:
    bash
    sudo apt install libxrender1
    
  • Проверка xset q: Введите xset q | grep -i dpi, чтобы убедиться, что X сервер сообщает правильный DPI.
  • Фиксация DPI в /etc/environment:
    bash
    echo "GDK_DPI_SCALE=1" | sudo tee -a /etc/environment
    

Заключение

  • Система: масштаб 100 % (или 150 %/200 %) без дробных значений, DPI = 96 / 144, переменная GDK_DPI_SCALE=1.
  • WebStorm: Oracle JDK, JVM‑флаги -Dsun.java2d.uiScale.enabled=false, -Dsun.java2d.dpiaware=true, -Dsun.java2d.opengl=true, отключить «Override default font».
  • VSCode: GDK_DPI_SCALE=1, запуск с --force-device-scale-factor=1.0, window.zoomLevel=0.

После выполнения этих шагов шрифты в обеих IDE станут чёткими, а пользовательский интерфейс будет выглядеть так же, как на Windows 10. Если проблемы сохраняются, проверьте, что вы не используете Fractional 125 % в настройках дисплея и что переменные окружения не переопределяются в других конфигурационных файлах.


Источники

  1. Super User – “How to fix font anti‑aliasing in IntelliJ IDEA when using high DPI?” – описание проблемы с OpenJDK и Oracle JDK.
  2. JetBrains Support – “HiDPI configuration – IDEs Support (IntelliJ Platform)” – рекомендации по JVM‑флагам и масштабированию.
  3. Codelantis – “Ubuntu: How to fix blurry text in IntelliJ or Visual Studio Code (2024)” – упоминание флага sun.java2d.opengl.
  4. Ask Ubuntu – “Fractional scaling makes browser blurred” – объяснение влияния GDK_DPI_SCALE.
  5. Super User – “How to upscale the interface of IntelliJ IDEA/WebStorm?” – конкретные команды -Dsun.java2d.uiScale.enabled=false.
Авторы
Проверено модерацией
Модерация