Hidpi что это
Перейти к содержимому

Hidpi что это

  • автор:

“Поддержка HiDPI”¶

Модуль Поддержка HiDPI нужен для того, чтобы картинки на HiDPI-экранах (Apple называет их Retina) смотрелись так же хорошо, как на обычных. У HiDPI-экранов значительно больше пикселей на один квадратный сантиметр пространства. Изначально HiDPI-экраны появились на смартфонах и планшетах, но сейчас могут быть у ноутбуков и обычных мониторов.

Когда модуля нет, изображение одного и того же размера на обычном экране смотрится чётко, а на HiDPI-экране может оказаться размытым.

Функциональность¶

  1. Правильно адаптировать изображения с изменённым размером для HiDPI-экранов. Тут важно понимать, что в CS-Cart очень редко показываются те самые изображения, которые вы загрузили. Например, вы загрузили изображение товара. На странице товара и в категориях появится не это самое изображение, а его версии, уменьшенные до нужного размера.

Важно Модуль Поддержка HiDPI автоматически генерирует уменьшенные версии изображений, но с разрешением в 2 раза больше обычного, и отдаёт их устройствам с HiDPI-экранами. На обычных экранах при этом отображаются изображения со стандартным разрешением.

  • Создавать уменьшенный в два раза вариант оригинальных изображений. Иногда CS-Cart всё же отображает оригинальные картинки, которые вы загрузили. По умолчанию так работают только баннеры, но любой модуль или тема может где-то отобразить полноразмерную картинку (например, изображение товара). Чтобы и в этом случае отдавать картинки с разным разрешением, нужно делать две вещи:
    • Изначально загружать изображение с разрешением в 2 раза больше, чем нужно на обычном экране. Так будет обеспечено нужное качество на HiDPI-экранах.
    • При загрузке такого изображения ставить галочку Я загружаю HiDPI-изображение. Так CS-Cart будет знать, что для обычных экранов надо разрешение этого изображения уменьшить в 2 раза.
  • Настройка¶

    Модуль Поддержка HiDPI устанавливается так же, как любой другой модуль . Нажмите на название установленного модуля, и откроются его настройки:

      Считать все загруженные изображения HiDPI — эту настройку стоит включать, если у вас все изображения загружаются с учётом HiDPI (т.е. с разрешением в 2 раза больше обычного). Тогда галочка Я загружаю HiDPI-изображение будет всегда проставлена по умолчанию, но её можно будет снять при загрузке любого изображения.

    Примечание Если вы хотите добиться максимально возможной поддержки HiDPI-экранов, рекомендуем включить эту настройку и всегда находить и загружать изображения с разрешением в 2 раза больше обычного.

    Содержание

    • Установка и переезд
    • Администрирование
      • О панели администратора
      • Быстрый старт
      • Внешний вид
      • Модули или аддоны
        • Установка и настройка модулей
        • “АТОЛ Онлайн”
        • Баннеры
        • “Блог”
        • “Бонусные баллы”
        • “Вариации товаров”
        • “Возврат товаров”
        • “Вход в панель администратора через Google”
        • Карта сайта для Yandex и Google
        • Google Analytics
        • “Города”
        • “Зависимости для способов оплаты”
        • “Импорт из Shopify”
        • Интеграция с Тинькофф
        • “Интеграция с Zapier”
        • “Калькулятор стоимости доставки eDost.ru”
        • “Карты и геолокация”
        • Конструктор прайс-листов
        • Конфигуратор панели продавцов
        • Комбинации товаров
        • “Комплекты товаров”
        • “Конструктор форм”
        • Лендинги из Тильды
        • “Магазины и пункты самовывоза”
        • “Местоположение продавцов [Beta]”
        • “Налоговые ставки РФ”
        • “Ограничение доступа”
        • “Ограничение по возрасту”
        • “Обратный звонок”
        • “Общие товары для продавцов”
        • “Оплата напрямую продавцам”
        • “Оплата от продавцов администратору”
        • “Определение местоположения”
        • “Опросы и голосования”
        • “Отзывы и комментарии”
        • “Отзывы о товарах”
        • Пиксель Facebook
        • “Платежи через PayPal”
        • “Подарочные сертификаты”
        • “Поддержка HiDPI”
        • “Подтверждение на обработку персональных данных (152-ФЗ)”
        • “Почта России”
        • “Пошаговое оформление заказа” [Не рекомендуется]
        • “Премодерация данных продавцов”
        • “Привилегии продавцов”
        • “Прикреплённые файлы”
        • “Простое оформление заказа [Beta]”
        • “Расширенный импорт товаров”
        • “Рейтинг продавцов”
        • С этим товаром часто покупают.
        • “СДЭК”
        • “Склады [Beta]”
        • “Социальные кнопки”
        • “Социальные сети”
        • “Старая панель администратора” [Не рекомендуется]
        • “Тарифные планы для продавцов”
        • “Тарифные планы для продавцов: Комиссии для категорий”
        • “Теги”
        • “SMS-уведомления”
        • “Увеличенные изображения товаров”
        • “Фулфилмент от маркетплейса”
        • “Цена за единицу”
        • “Центр сообщений”
        • “Чат Telegram (Re:plain)”
        • “Экспорт в Яндекс.Маркет”
        • “ЮKassa”
        • “Яндекс.Метрика”
        • Boxberry
        • “CommerceML (1С, МойСклад, Бизнес.Ру)”
        • Google reCAPTCHA
        • Janrain
        • “Robokassa”
        • RetailCRM
        • SEO
        • Разработка
        • Дизайн
        • Обновление CS-Cart
        • Часто задаваемые вопросы
        • История изменений

        Сейчас

        • “Поддержка HiDPI”
          • Функциональность
          • Настройка

          HiDPI в Linux, в частности в KDE

          Мониторы разрешением в 4K перестали считаться уделом буржуев и понемногу входят в жизнь простого люда. Равно как и мониторы других высоких разрешений. Ещё пару лет назад я про поддержку таких мониторов в Linux говорил, что «скорее нет, чем да». Поддержка вроде была, но количество глюков с ней делало весь процесс бессмысленным, и очень хотелось переключить монитор на разрешение поменьше. Чего некоторые 4K мониторы не позволяют в Линуксе делать до сих пор. Дело в том, что драйвера NVidia при подключении по DisplayPort наивно верят EDID монитора, и если там прописано только одно максимальное разрешение — не позволяют ставить никакое другое. Надо либо откатываться на Nouveau, либо настраивать HiDPI. Будем настраивать! (Статья рассчитана на человека, знающего основы Linux и что такое X сервер).

          О DPI вообще и HiDPI в частности

          DPI (dots per inch) — это величина, говорящая, сколько пикселей экрана приходится физический сантиметр его площади. Если монитор работает в неродном разрешении, то речь идёт о виртуальных пикселях разрешения. С античных времён и до совсем недавно, величина в 96 DPI была стандартом — то есть, обычные мониторы если и отличались от неё, то настолько, что этим можно было пренебречь. 120 DPI когда-то была максимальной величиной, которую обычно тестировали.

          Не удивительно, что за столько лет разработчики программ приняли эту величину за незыблемую постоянную. Вдруг пришли мониторы с 160-192 DPI и началось. Все программы, которые хоть какой-то размер в интерфейсе задавали в пикселях, получили наезжающие друг на друга панели, подписи, обрезанные до первой буквы, и кнопки, за успешное нажатие которых надо давать денежный приз.

          Словом HiDPI называют ситуацию на мониторах с DPI>160. DPI операционной системы не обязательно равна DPI экрана. Напротив, DPI системы можно крутить для того, чтобы делать интерфейс крупнее-мельче. Мало того, системы различают DPI всего, DPI шрифтов и DPI, отдаваемую полноэкранным приложениям.

          А как у других?

          Макось выручило её авторитарное правление. Поскольку почти все программы создают свой интерфейс через одно и то же API, его просто поправили, и получилось сразу хорошо. Отдельные неистребимые косяки только подчёркивают, насколько в целом всё хорошо.

          Android родился на системах с большим разбросом DPI, поэтому умел всё с самых пелёнок, и учебники для программистов это всё учитывали.

          Windows позволяло крутить DPI шрифтов всегда. Вот только DPI графики от этого не менялась. Отдельные элементы меняли размер оттого, что привязаны к размеру шрифта, или экрана. Но размеры, заданные в пикселях, от этого не сдвигались. В Win 10, наконец, появилась нормальная поддержка HiDPI, но только для программ, написанных для Win 10. Для остальных написан костыль, делающий просто графическое увеличение окна программы с трансляцией положения кликов. Увеличение делает окно размытым, а трансляция работает криво. Хуже то, что это увеличение пробует запуститься для полноэкранных приложений тоже, поэтому, чтобы поиграть, его нужно выключить, а чтобы поработать — включить.

          А в Linux?

          А в Linux, как всегда, вакханалия. У нас есть два мажорных набора для GUI (Qt и GTK), каждый из которых относительно недавно пережил переписывание с нуля, поэтому до сих пор в ходу старая и новая версия. Плюс несколько наборов поменьше(EFL, wxWidgets). Плюс несколько языков, которые используют для этого свои средства, например Java. Плюс несколько древних библиотек, на которых уже никто не пишет, но нужный софт на них ещё бывает. (GTK 1, Motif) Даже если X сервер и оконный менеджер правильно обрабатывают DPI, не факт, что весь этот зоопарк воспримет эту информацию и будет работать нормально.

          Можно много за что не любить Ubuntu с Unity, но одну вещь я должен сказать. Я не знаю, как в Unity настраивать HiDPI потому, что всё всегда работало само из коробки. Все остальные DE: Cinnamon, KDE, XFCE, тоже имеют соответствующий флажок. Этот флажок настраивает саму DE, приложения, написанные на её главной библиотеке(только новой версии) и пару флагов для Qt/GTK. А остальное всё побоку. В результате, например, в плеерах кнопка Play остаётся крошечной. И значки в трее маленькие, но не все. Годик за такой системой — и человек в Overwatch играет только за МакКряка, потому что у человека попиксельная меткость на мышке и он всех ненавидит.

          Я буду рассказывать, как настроить KDE. Не так, как по инструкции, а так, чтобы работало всё. Deadbeef, Yakuake, Blender. Я проверял это, в основном, в Арче. В других дистрибутивах может быть, что что-то из того, что я опишу, уже сделано или сделано по-другому. Думайте головой или пишите в комментариях — разберёмся.

          Настройка Иксов

          Первым делом нужно проверить, а знают ли Иксы, что у нас HiDPI? Для этого нам нужна софтинка xdpyinfo — она есть в репе. Установите, если не установлено, родное разрешение монитора, (и перезапустите Иксы). Запускайте в консоли внутри иксов (то есть не по Ctrl-Alt-F*).

          xdpyinfo | grep -B 2 resolution screen #0: dimensions: 3840x2160 pixels (621x341 millimeters) resolution: 157x161 dots per inch

          Видим три пары значений — разрешение экрана, реальные размеры экрана, и DPI (отдельно по вертикали и горизонтали) Если все три пары похожи на правду, то отвернитесь от монитора и воздайте хвалу высшей сущности по вашему выбору; ибо если же xdpyinfo возвращает ерунду и DPI=96, значит ваша высшая сущность посылает вам мытарства.

          Самые частые причины неправильной DPI — кривые EDID и фирменные дрова видеокарты. Про видеокарты ATi не скажу ничего, так как сторонюсь их. Не то, чтобы они чем-то плохи, но ATi + Linux = лишние проблемы. C Intel всё само должно работать. NVidia же до недавнего времени упорно поганила DPI. Сначала отключите G-sync в nvidia-settings , всё равно никакой композитный менеджер с ним не дружит. Если не помогло, включите KMS. Kernel Mode Setting — это метод, по которому разрешением экрана заведует ядро Linux, а не Иксы. Кроме прямого назначения, это позволяет обойти много глючного кода 20-летней давности в Иксах. К сожалению, процедура включения KMS на фирменных драйверах Nvidia дистрибутивозависима, поэтому опишу только в общих чертах. Нужно добавить модули nvidia, nvidia_modeset, nvidia_uvm, nvidia_drm в initramfs, пересобрать его, а затем добавить ядру параметр nvidia-drm.modeset=1 . Гуглите.

          Если в предыдущем абзаце вы ничего не поняли, то можно просто отказаться от фирменных дров NVidia и использовать пока что Nouveau — там KMS из коробки. В Кубунте это делается через программу, управляющую драйверами.

          Если всё вышеописанное не помогло и xdpyinfo по прежнему пишет фигню, то, может быть, виноваты не драйверы видео, а кривые EDID монитора. Сначала запустите в той же консоли xrandr —dpi 192 . И запустите какую-нибудь программку. Если она стала больше, то способ работает. Вставляйте эту команду в .xprofile и перезапускайте Иксы. В дальнейшем я буду много говорить про .xprofile . Это файл в домашней папке каждого пользователя, который настраивает работу графических приложений. Если его нет — просто создайте его: touch ~/.xprofile . Если всё заработало — Ура! Если нет, сначала проверьте, что в вашем дистрибутиве из KDE не вырезали поддержку .xprofile . Для чего добавьте туда что-то вроде touch ~/net_ne_vyrezali и перезагрузите ещё раз.

          Всё равно не работает? Пропишем DPI в Иксы вручную. Создайте, если уже нет, файл /etc/X11/xorg.conf.d/90-monitor.conf и в него напишите:

          Section "Monitor" Identifier "Prikolny monitor" DisplaySize 286 179 # В миллиметрах EndSection

          А для фирменных дров Nvidia

          Section "Monitor" Identifier "Prikolny monitor" Option "DPI" "192 x 192" EndSection

          Обратите внимание, что везде принудительное значение DPI я ставлю в 192, точнее в любое значение, кратное 96. Оно работает точнее, чем реальная DPI, потому что гладиолус. Тут работает парадокс дизайнера:

          • Если DPI кратна 96, лучше рендерятся шрифты в приложениях, работающих с текстом. Особенно в приложениях на Cairo.
          • Если DPI равна настоящей DPI монитора, то масштаб 1:1 на экране будет иметь тот же размер, что и на бумаге.

          Сохраняем, перезапускаем Иксы и ликуем. Или пьём горькую и ждём, когда Wayland доделают.

          Настройка в KDE

          Итак, наконец, настраиваем HiDPI в KDE правильно. В меню → System Settings → Display and Monitor в самом внизу есть большая кнопка Scale Display. По её нажатию вылезает окно с единственным слайдером Scale. Теперь внимание! Если вам так и не удалось настроить DPI в иксах, закрывайте эту статью, ставьте значение ползунка по вкусу, и радуйтесь тому, что работает. А что не работает — смиритесь (Это обычно Хром, Скайп, QtCreator, Yakuake, GTK).

          Если же DPI в Иксах у вас правильная — то не трогайте этот ползунок! В идеале, даже, не крутите его туда-сюда, потому что, кажется, он где-то что-то пишет при этом. Закрывайте это окно нафиг. Согласно статье в блоге создателя этого ползунка (соль в комментах) он переопределяет системную DPI и ставит ещё несколько переменных. Проблема в том, что это переопределение видят не все программы, и получается каша. Поэтому мы не будет трогать ползунок, а всё настроим вручную.

          Вообще, на данном этапе, если DPI правильная, то всё должно быть уже достаточно крупно. Проходим в System Settings → Fonts. По умолчанию там стоит размер шрифта 11. Если для достижения гармонии вам хватит 10-14 — ставьте, приложения подтянутся. Если больше или меньше — имеет смысл попробовать подшаманить системную DPI как указано выше. Ниже стоит поле Force Font DPI. Можете его подкрутить, если хотите, но учтите, что не все приложения читают эту величину. Даже не так. Некоторые приложения читают эту величину не всеми своими частями. Так что если попытаться здесь исправить системную DPI в 96, будет каша. А вот поднять DPI 167 монитора до идеальных 192 можно.

          Закрывайте окно Fonts. Вообще, сейчас самое время перезагрузить Иксы и посмотреть, что получилось. Должны работать и иметь удобный размер KDE, все его настройки и приложения. Панель плазмы, кстати, сама не вырастет. Но она векторная, и её всегда можно растянуть — кликните бутерброд слева и появятся кнопки. Так же размер в Долфине надо поставить вручную. Если же где-то ещё в KDE-приложениях кнопки и панели слишком мелкие, надо пошаманить размеры иконок в System Settings → Icons.

          Настраиваем другие приложения

          Chrome, Atom и другие

          Эти приложения читают DPI напрямую из откуда получится и следуют ей как рыцарь кодексу. Если они читают что-то не то, то и выглядеть будут как-то не так. Обычно они игнорируют настройки в System Settings и следуют той DPI, которую возвращает xdpyinfo. Если там 96, то для Хрома можно использовать аргумент —force-device-scale-factor=2 , для Атома есть кривой плагин hidpi в официальной репе, для других программ свои костыли.

          QtCreator, Yakuake, и другие приложения на Qt5

          Вообще, они должны работать. Но у QtCreator бывает не масштабируется полоса инструментов, а у Yakuake полоса с табами. Причина в баге и в переменной окружения QT_AUTO_SCREEN_SCALE_FACTOR . Когда она равна 1 , Qt5 пытается сам найти значение DPI, а когда 0 — ждёт, что это значение ему дадут в других переменных. Баг в том, что KDE передаёт фигню.

          Короче, нужно этим приложениям установить переменную QT_AUTO_SCREEN_SCALE_FACTOR=1 и всё заработает. Это можно сделать либо выборочно, либо глобально. Выборочно — в Menu Editor. Только не забудьте потом добавить заново приложение на панель и в автозапуск. Это нужно потому, что .desktop записи копируются, а не линкуются. Второй вариант — установить эту переменную всесистемно, в .xprofile или даже /etc/environment, или куда там в вашем дистрибутиве переменные пишут. Тут два нюанса. Во-первых, KDE принудительно сбрасывает эту переменную в 0 в скрипте /usr/bin/startkde. Его придётся открыть, и отредактировать, закомментив строчку #export QT_AUTO_SCREEN_SCALE_FACTOR=0 . После этого нужно не забывать повторять это исправление каждый раз, когда KDE обновляется. Второй нюанс в том, что разработчики KDE предупреждают в комментах: установка этой переменной глобально может привести к тому, что некоторые приложения Qt5 будут увеличены дважды. Но у меня этого не происходит. Далее, если системная DPI неправильная, надо установить переменную QT_SCALE_FACTOR=2 в .xprofile.

          Не забудьте, что переменная QT_DEVICE_PIXEL_RATIO устарела. Если вы её где-то ставили, то надо убрать.

          Приложения на Qt4

          Эти приложения, в общем, плохо умеют HiDPI. Но не всё потеряно. Qt4 создаёт очень гибкий интерфейс. Запускайте qtconfig-qt4 . Сначала смотрите шрифт и выставляйте удобный размер. Затем на вкладке Interface найдите костыль под названием «Global strut» (в переводе — глобальный костыль. ) Эта настройка означает, что инстансы QWidget и его потомков не могут быть меньше этого размера в пикселях, что бы с ними не делали. C помощью Minimum Width можно задать ширину скроллбаров, а с помощью Minimum Height — высоту панелей инструментов.

          Приложения на GTK3

          Здесь всё просто. Нужно установить в .xprofile две переменные:

          GDK_SCALE=2 Командует GTK увеличить всё в 2 раза. Значение должно быть целым. GDK_DPI_SCALE регулирует увеличение шрифтов. Если после GDK_SCALE шрифты получились огромные, надо поставить GDK_DPI_SCALE=0.5

          Приложения на GTK2

          Здесь всё сложно. GTK2 вообще никак не умеет HiDPI. Но есть хак. Софтина под названием Oomox является генератором тем (скинов) для GTK. В том числе, с её помощью можно собрать такую тему под GTK2, которая будет имитировать HiDPI. Или найти такую тему готовую.

          Приложения на Qt3, Gtk1, Motif

          Здесь всё совсем сложно. Есть два возможных хака. Во-первых, можно воспользоваться способностью Kwin увеличивать весь экран. System Settings → Desktop Effects → Desktop Effects → Zoom. Средняя кнопка слева — это настройки, в том числе клавиши для включения и выключения. Второй способ — это запустить приложение в сервере удалённого рабочего стола и локально к нему подключиться. Я просто вставлю ссылку на скрипт, потому что настраивать это — вопрос отдельной статьи.

          Приложения на Java

          Более крутые и коммерческие программы на Java ведут себя как Хром: читают DPI из Иксов и следуют ей. Программы попроще можно исправить одним из двух аргументов: -Dsun.java2d.uiScale=2 увеличивает интерфейс в 2 раза, а -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel велит ей пользоваться для отрисовки размерами из GTK. Напомню, что в .xprofile можно создать переменную export _JAVA_OPTIONS=’-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel’ . Приведённый пример включает сглаживание в шрифтах и GTK.

          Часто задаваемые вопросы о поддержке дисплеев Retina и HiDPI

          Дисплеи HiDPI и Apple Retina представляют собой дисплеи, которые имеют большее количество пикселей на дюйм, чем традиционные мониторы. Некоторые дисплеи имеют настолько высокую плотность пикселей, что их невозможно обнаружить невооруженным глазом. Для поддержки этих мониторов Photoshop регулирует настройку коэффициента масштабирования в настройках операционной системы. Чем больше коэффициент масштабирования в настройках вашей системы, тем больше Photoshop масштабирует пользовательский интерфейс. Это позволяет пользователю регулировать размер пользовательского интерфейса и видеть четкий текст.

          Поддержка и требования

          Поддержка версии

          Разрешение экрана

          Photoshop поддерживает минимальное разрешение экрана 1024 x 768 при 100% масштабировании интерфейса пользователя. Минимальное разрешение экрана должно увеличиваться при увеличении коэффициента масштабирования пользовательского интерфейса. Например, для масштабирования до 150% потребуется разрешение экрана 1920 x 1080 или 2880 x 1800 для масштабирования до 200%.

          Полная информация о минимальных технические характеристиках для запуска и использования Photoshop приведена в разделе Системные требования.

          Изменение настроек разрешения

          macOS

          Photoshop обеспечивает полную поддержку оборудования HiDPI, в том числе дисплеев Retina, представленных на текущих MacBook Pro.

          Photoshop корректирует разрешение интерфейса в зависимости от системных настроек дисплеев macOS:

          • В macOS выберите Системные настройки > Дисплеи. Теперь в разделе «Дисплей» выберите «По умолчанию для отображения» или «Масштабирование», чтобы выбрать настройку разрешения. Чтобы узнать, как изменить разрешение дисплея Mac, см. раздел «Служба технической поддержки Apple».

          В средах с нескольким мониторами в macOS при перетаскивании окна с экрана HiDPI Retina на обычный экран масштаб автоматически корректируется. С помощью такого поведения можно избежать слишком больших окон и чрезмерной перерисовки.

          Windows 10

          Photoshop предлагает полный набор возможностей для масштабирования пользовательского интерфейса — от 100 % до 400 % с шагом 25 %.

          Photoshop корректирует разрешение интерфейса в зависимости от параметров ОС Windows:

          • В ОС Windows выберите Пуск > Настройки > Система > Дисплей. Теперь в разделе «Масштаб и макет» можно выбрать коэффициент масштабирования для каждого из дисплеев. Чтобы просмотреть настройки дисплея в Windows 10, см. «Служба поддержки Microsoft».

          Кроме того, можно корректировать масштаб на каждом мониторе, используя разные коэффициенты масштабирования. Такая гибкость обеспечивает согласованную работу на ноутбуке с высоким разрешением (HiDPI) и на мониторе настольного компьютера с более низким разрешением или наоборот. Например, один из мониторов имеет коэффициент масштабирования 175%, а другой — 400%. Интерфейс Photoshop будет одинаково безупречен и на самых дорогих 13-дюймовых ноутбуках с экранами 4k, и на более доступных моделях 1080p, и на компьютерных мониторах 8k.

          Примечание.

          В ОС Windows 10 параметр «Масштабирование интерфейса пользователя» в Photoshop Настройки Photoshop > Интерфейс > Масштабирование интерфейса пользователя применяется к некоторым компонентам, таким как «Сведения о файле» и некоторым сторонним модулям.

          Когда параметру «Масштабирование интерфейса пользователя» задано значение «Авто», по умолчанию используется ближайшее значение к коэффициенту масштабирования монитора, заданному в ОС: 100 или 200%.

          Windows 7

          В ОС Windows 7 параметр «Масштабирование интерфейса пользователя» в Настройки Photoshop > Интерфейс > Масштабирование интерфейса пользователя при меняется ко всему пользовательскому интерфейсу Photoshop. Когда параметру «Масштабирование интерфейса пользователя» задано значение «Авто», по умолчанию используется ближайшее значение к коэффициенту масштабирования монитора, заданному в ОС: 100 или 200%.

          Просмотр изображений

          Редактирование изображений на дисплее HiDPI сделает ваши изображения более четкими; однако они будут отображаться в меньшем размере. Чтобы предварительный просмотр был больше, просматривайте изображения в масштабе 200 % (выберите «Вид» > «200 %»).

          Новые или измененные команды

          • Реальный размер элементов теперь составляет 100 % в меню «Вид», на панели инструмента «Масштаб» и в диалоговом окне «Комбинации клавиш».
          • Для меню «Вид» теперь предусмотрен масштаб 200 %.

          Новые комбинации клавиш

          • Cmd + двойной щелчок (macOS) или Ctrl + двойной щелчок (Windows) на знаке «Масштаб», чтобы увеличить масштаб окна до 200 %.
          • Shift + Cmd + двойной щелчок (macOS) или Shift + Ctrl + двойной щелчок (Windows) на знаке «Масштаб», чтобы увеличить масштаб всех окон до 200 %.
          • В контекстном меню «Холст» теперь предусмотрен масштаб 200 % при использовании инструмента «Масштаб» либо инструмента «Рука».
          • Можно назначить пользовательское сочетание клавиш для команды «Вид» > «200%»: выберите меню «Правка» > «Комбинации клавиш», чтобы открыть диалоговое окно «Комбинации клавиш».

          Photoshop CS6 (только для macOS)

          Поддержка HiDPI Retina была добавлена в Photoshop 6 (версия 13.0.2) для держателей бессрочной лицензии, работающих в macOS. Поддержка HiDPI также добавлена для Camera Raw 8.1 в Photoshop CS6.

          Предусмотрена ли поддержка технологии HiDPI в версиях Photoshop, предшествующих Photoshop CS6?

          Нет, поддержка технологии HiDPI в версиях Photoshop, предшествующих Photoshop CS6, не планируется.

          HiDPI (Русский)

          Состояние перевода: На этой странице представлен перевод статьи HiDPI. Дата последней синхронизации: 22 октября 2023. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

          Дисплеи HiDPI (High Dots Per Inch), также известные под маркетинговым названием Apple «Retina Display», — это экраны, имеющие высокое разрешение при относительно небольшом размере. Они в основном встречаются в ноутбуках и мониторах высшего класса.

          Ещё не все программы нормально работают в режиме высокого разрешения. Здесь перечислены основные настройки, улучшающие работу на дисплеях высокого разрешения.

          Среды рабочего стола

          GNOME

          Для включения HiDPI перейдите в Настройки > Дисплеи > Масштаб и выберите нужное значение. Также можно использовать gsettings:

          $ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "[>]" $ gsettings set org.gnome.desktop.interface scaling-factor 2

          Примечание: Коэффициент масштабирования в GNOME может быть только целым числом: 1 = 100%, 2 = 200% и т. д. Смотрите раздел #Дробное масштабирование ниже.

          Дробное масштабирование

          На некоторых экранах (например, планшетах) может быть комфортнее использовать дробное масштабирование (fractional scaling). Это можно реализовать как в Wayland, так и в Xorg, хотя процедуры различаются.

          Реализация обсуждалась на GNOME fractional scaling hackfest 2017. [1]

          Wayland

          Включите экспериментальную функцию дробного масштабирования:

          $ gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

          Затем перейдите в Настройки > Дисплеи > Масштаб (новые значения могут появиться только после перезапуска сеанса).

          Примечание: Включение дробного масштабирования может привести к размытию в старых приложениях, использующих Xwayland, даже если используется целочисленный коэффициент, поскольку изменяется метод рендеринга.

          Чтобы включить это для всех пользователей, создайте следующие три файла:

          /etc/dconf/profile/user
          user-db:user system-db:local
          /etc/dconf/db/local.d/00-hidpi
          [org/gnome/mutter] experimental-features=['scale-monitor-framebuffer']
          /etc/dconf/db/locks/hidpi
          /org/gnome/mutter/experimental-features

          Затем выполните dconf update и перезагрузитесь.

          Xorg

          Ubuntu предоставляет патч [2] для настройки масштабирования с помощью Randr через GNOME Settings. Пропатченную версию можно установить с помощью пакета mutter-x11-scaling AUR . После установки выполните:

          $ gsettings set org.gnome.mutter experimental-features "['x11-randr-fractional-scaling']"

          Затем перейдите в Настройки > Дисплеи > Масштаб.

          Также можно реализовать дробное масштабирование вручную, используя коэффициент масштабирования GNOME вместе с масштабированием через xrandr. Эта комбинация позволяет правильно масштабировать шрифты TTF, чтобы они не размывались, в отличие от использования только xrandr. С помощью gsettings картинка увеличивается, а затем с помощью xrandr уменьшается до нужного размера.

          Сперва задайте в настройках GNOME такой масштаб, который будет больше чем нужно. Обычно «2» уже много, но если нет, то попробуйте «3» и так далее. Затем начните изменять масштабирование с помощью xrandr. Сперва узнайте название нужного видеовыхода, в примерах ниже используется eDP1 . Попробуйте для начала задать коэффициент, например, 1.25 — если интерфейс всё ещё слишком крупный, то немного увеличьте коэффициент; если уже слишком мелкий — немного уменьшите.

          $ xrandr --output eDP1 --scale 1.25x1.25

          Чтобы изменения сохранялись между перезагрузками, можно использовать autorandr ; смотрите этот ответ на StackOverflow.

          Масштабирование текста

          В качестве альтернативы или в дополнение к изменению общего масштаба можно отдельно изменить масштаб текста. Это можно сделать через Gnome Tweaks в настройке Шрифты > Коэффициент масштабирования или через gsettings. Этот коэффициент может быть дробным числом, например:

          $ gsettings set org.gnome.desktop.interface text-scaling-factor 1.5

          KDE Plasma

          Настройки Plasma позволяют задать масштаб шрифтов, значков и виджетов. Они повлияют как на приложения Qt, так и на GTK.

          Примечание: Plasma 5.27 отказалась от использования переменных GDK_SCALE / GDK_DPI_SCALE и перешла на Xsettingsd. Установите его, чтобы масштабирование работало для GTK-приложений при использовании Xorg. Или можно установить эти переменные вручную, как описано в разделе #GDK 3 (GTK 3).

          Для совместной настройки масштаба шрифтов, виджетов и значков:

          1. Параметры системы > Экран > Настройка экранов > Глобальный масштаб (в Xorg) или Масштаб (в Wayland)
          2. Задайте нужный коэффициент с помощью ползунка и нажмите «Применить»
          3. Перезагрузитесь для полного применения изменений

          Примечание: Если вы используете Xorg и масштаб в приложениях Qt не изменился даже после перезагрузки, проверьте наличие xft.dpi в ~/.Xresources . Если он там есть, удаление должно помочь.

          Размер курсора

          Для настройки размера курсора мыши:

          1. Параметры системы > Внешний вид > Курсоры мыши > Размер
          Масштаб шрифтов

          Чтобы настроить только масштабирование текста:

          1. Параметры системы > Внешний вид > Шрифты
          2. Поставьте галочку Использовать другой DPI и настройте значение на свой вкус. Эта настройка должна вступить в силу немедленно для вновь запущенных приложений. Для применения ко всему рабочему столу Plasma нужно перезапустить сеанс.
          Масштаб значков

          Чтобы настроить только масштабирование значков:

          1. Параметры системы > Внешний вид > Значки > Выбрать размеры значков
          2. Выберите желаемый размер значков в каждой категории. Изменения должны примениться сразу.
          Значки в трее с фиксированным размером

          Значки в трее не масштабируются вместе с остальным рабочим столом, поскольку по умолчанию Plasma игнорирует настройки масштабирования Qt. Чтобы заставить Plasma учитывать настройки Qt, установите переменную окружения PLASMA_USE_QT_SCALING=1 .

          Xwayland

          Начиная с Plasma 5.26, метод масштабирования Xwayland можно выбрать здесь: Параметры системы > Экран > Настройка экранов > Устаревшие приложения (X11).

          В режиме «Масштабирование средствами системы» приложение X11 будет рендериться в 1x, а затем увеличиваться (масштабироваться) силами KDE. Это работает для всех приложений, но размывает картинку из-за увеличения.

          В режиме «Масштабирование средствами приложений» приложение X будет рендерить себя в соответствующем размере. Это позволит избежать размытости, но приложения, не поддерживающие HiDPI, будут рендерить себя в масштабе 1х и поэтому будут выглядеть маленькими.

          Смотрите этот пост в блоге для более подробной информации.

          Xfce

          В Xfce настроить масштабирование можно здесь:

          1. Диспетчер настроек > Внешний вид > Настройки > Масштабирование окон
          2. Диспетчер настроек > Диспетчер окон > Стиль — тема Default-xhdpi

          То же самое можно сделать с помощью команды xfconf-query:

          $ xfconf-query -c xsettings -p /Gdk/WindowScalingFactor -s 2 $ xfconf-query -c xfwm4 -p /general/theme -s Default-xhdpi

          Если в некоторых приложениях GTK шрифты всё равно не масштабируются, попробуйте также сделать следующее (смотрите #GDK 3 (GTK 3)):

          1. Перейдите в Диспетчер настроек > Внешний вид > Шрифты > Задать DPI и измените на 192
          2. Установите переменную окружения GDK_DPI_SCALE=0.5 для уменьшения тех шрифтов, которые отмасштабировались дважды.

          Эти настройки применяются к Xfce и приложениям GTK.

          Масштабирование в Qt нужно настроить вручную; смотрите раздел #Qt 5. Если вы изменили DPI шрифтов, вам может понадобиться задать переменную окружения QT_FONT_DPI=96 , чтобы избежать двойного масштабирования шрифтов в приложениях Qt.

          Cinnamon

          Поддерживает из коробки.

          Enlightenment

          Для E18 перейдите в E Setting panel. В Look > Scaling можно управлять коэффициентами масштабирования пользовательского интерфейса. Коэффициент 1.2, похоже, хорошо подходит для родного разрешения экрана MacBook Pro 15″.

          Оконные менеджеры

          Sway

          Ресурсы X

          Если вы не используете среду рабочего стола, такую как KDE, Xfce или другую, которая управляла бы настройками X за вас, вы можете установить желаемые настройки DPI вручную с помощью переменной Xft.dpi в Xresources:

          ~/.Xresources
          Xft.dpi: 192 ! Это также можно быть полезно в зависимости от вашего монитора и личных предпочтений: Xft.autohint: 0 Xft.lcdfilter: lcddefault Xft.hintstyle: hintfull Xft.hinting: 1 Xft.antialias: 1 Xft.rgba: rgb

          Для Xft.dpi обычно хорошо подходят значения кратные 96, например 192 даёт масштаб 200%.

          Убедитесь, что эти настройки загружаются при запуске X — например, в файле ~/.xinitrc с помощью команды xrdb -merge ~/.Xresources . Смотрите статью Ресурсы X для более подробной информации.

          Это задаст нужный размер шрифта в большинстве приложений, однако не повлияет на такие вещи, как размер значков. Установка Xft.dpi одновременно с масштабированием инструментария (например, GDK_SCALE ) может привести к тому, что в некоторых программах, например Firefox, элементы интерфейса будут намного больше чем ожидалось.

          X-сервер

          Некоторые программы всё ещё могут считывать DPI, заданный X-сервером (большинство программ считывают ресурсы X прямо или косвенно). Старые версии i3 (до 2017 года) и Chromium (до 2017 года) делали это.

          Чтобы проверить, правильно ли X-сервер определил физические размеры вашего монитора, используйте утилиту xdpyinfo из пакета xorg-xdpyinfo :

          $ xdpyinfo | grep -B 2 resolution
          screen #0: dimensions: 3200x1800 pixels (423x238 millimeters) resolution: 192x192 dots per inch

          В этом примере используются неточные размеры (423 мм x 238 мм, хотя Dell XPS 9530 имеет размеры 346 мм x 194 мм), чтобы получить число, кратное 96 dpi, в данном случае 192 dpi. Это, как правило, работает лучше, чем использование правильного DPI — например, Pango рисует шрифты чётче в i3.

          Если DPI неверный, можно попытаться исправить его, как описано в разделе Xorg (Русский)#Размер дисплея и DPI.

          Инструментарий

          Qt 5

          Начиная с Qt 5.6, в приложениях Qt 5 можно включить учёт DPI экрана с помощью переменной окружения QT_AUTO_SCREEN_SCALE_FACTOR . В Qt 5.14 появилась новая переменная окружения QT_ENABLE_HIGHDPI_SCALING , которая заменяет переменную QT_AUTO_SCREEN_SCALE_FACTOR . Для наибольшей совместимости рекомендуется задать обе переменные:

          $ export QT_AUTO_SCREEN_SCALE_FACTOR=1 $ export QT_ENABLE_HIGHDPI_SCALING=1

          Если автоматическое определение DPI не даёт желаемого эффекта, масштабирование можно задать вручную для каждого экрана ( QT_SCREEN_SCALE_FACTORS / QT_ENABLE_HIGHDPI_SCALING ) или глобально ( QT_SCALE_FACTOR ). Более подробная информация есть в блоге Qt и в документации разработчика Qt.

          • Если вы вручную устанавливаете коэффициент экрана, важно установить QT_AUTO_SCREEN_SCALE_FACTOR=0 и QT_ENABLE_HIGHDPI_SCALING=0 , иначе некоторые приложения, которые принудительно включают высокий DPI, будут масштабироваться дважды.
          • QT_SCALE_FACTOR масштабирует шрифты, а QT_SCREEN_SCALE_FACTORS может не масштабировать их в зависимости от приложения.
          • Если вы также установите DPI шрифта вручную в xrdb для поддержки других инструментариев, QT_SCALE_FACTORS сделает шрифты огромными.
          • Если у вас #Несколько экранов с разным DPI, вам может понадобиться сделать QT_SCREEN_SCALE_FACTORS=»2;2″ .
          $ QT_FONT_DPI=96 clementine

          GDK 3 (GTK 3)

          Примечание: Как указано в разделе #Ресурсы X, если вы установили xft.dpi на большее значение dpi, это сделает другие масштабы больше, чем обычно, в том числе GDK.

          Установка масштаба GDK (в X11, не в Wayland) масштабирует пользовательский интерфейс, но не значки. Если вы используете минимальный оконный менеджер с установкой dpi через Xft.dpi, GDK будет масштабироваться отлично. В других случаях сделайте следующее:

          Для масштабирования интерфейса только на целочисленный коэффициент:

          $ export GDK_SCALE=2

          GTK3/4 не поддерживает дробное масштабирование, поэтому дробные коэффициенты будут игнорироваться. Эта переменная окружения также игнорируется в сеансах mutter wayland.

          Для масштабирования только текста можно использовать GDK_DPI_SCALE . Чтобы отменить масштабирование текста, можно использовать дробное масштабирование:

          $ export GDK_DPI_SCALE=0.5

          GTK3/4 не позволяют масштабировать значки, если приложение явно не реализует способ сделать это. Смотрите issue #4528. Если вам нужна эта возможность, по возможности используйте Qt.

          GTK 2

          Масштабирование интерфейса не поддерживается самим GTK 2, однако с помощью themix-full-git AUR можно сгенерировать тему с элементами, предварительно масштабированными для отображения в HiDPI.

          Electron

          В приложениях Electron (например, slack-desktop AUR , signal-desktop и т. п.) можно задать масштаб путём добавления флага —force-device-scale-factor в файл .desktop. Обычно он находится в каталоге /usr/share/applications/ и может быть переопределён путём создания копии в ~/.local/share/applications/ . Флаг должен быть добавлен к строке, начинающейся с «Exec=», например:

          ~/.local/share/applications/slack.desktop
          Exec=env LD_PRELOAD=/usr/lib/libcurl.so.3 /usr/bin/slack --force-device-scale-factor=1.5 %U

          Elementary (EFL)

          Увеличение интерфейса в 1.5 раза:

          export ELM_SCALE=1.5

          GNUstep

          Приложения GNUstep, использующие его графическую библиотеку (AppKit), принимают свойство GSScaleFactor в своих настройках по умолчанию (настройки STEP). Чтобы задать масштаб 1.5 для всех приложений:

          defaults write NSGlobalDomain GSScaleFactor 1.5

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

          defaults write NSGlobalDomain GSFontHinting 17

          Некоторое автоматическое обнаружение было возможно ещё в 2011 году, но код, отвечающий за бэкенд X11, был впоследствии закомментирован.

          Загрузчики

          GRUB

          Уменьшение разрешения фреймбуфера
          Изменение размера шрифта GRUB

          Найдите желаемый шрифт в /usr/share/fonts/ .

          Сконвертируйте его в формат, который понимает GRUB:

          # grub-mkfont -s 30 -o /boot/grubfont.pf2 /usr/share/fonts/FontFamily/FontName.ttf

          Примечание: Параметром -s можно менять размер шрифта.

          В файле /etc/default/grub задайте новый шрифт, как описано в разделе GRUB/Tips and tricks#Background image and bitmap fonts:

          GRUB_FONT="/boot/grubfont.pf2"

          Примечание: GRUB_THEME , если используется, переопределит GRUB_FONT .

          Совет: Размер шрифта также можно изменить с помощью графического инструмента настройки grub-customizer .

          systemd-boot

          Выберите более низкое разрешение для консоли с помощью опции console-mode (смотрите systemd-boot (Русский)#Настройка и loader.conf(5) § OPTIONS ).

          Приложения

          Если вы используете сеанс Wayland, но приложение работает через Xwayland (либо потому что оно не поддерживает Wayland изначально, либо потому что оно использует X11 по умолчанию), интерфейс и шрифты могут оказаться размытыми, даже если приложение поддерживает HiDPI. Смотрите это сообщение об ошибке. Смотрите также Wayland (Русский)#Визуальное обнаружение приложений Xwayland.

          Браузеры

          Firefox

          Firefox должен использовать настройки #GDK 3 (GTK 3). Однако GDK_SCALE масштабирует неконсистентно и не поддерживает дробные значения, вместо него можно попробовать GDK_DPI_SCALE . Другой вариант, который позволит избежать специфических для Firefox настроек во многих установках, — использовать #Ресурсы X, поскольку Firefox должен считывать указанное там значение Xft.dpi .

          Чтобы переопределить эти параметры, откройте страницу расширенных настроек Firefox ( about:config ) и добавьте параметр ui.textScaleFactor со значением 150 (или подберите более подходящее для вас значение; 150 — хороший выбор для экранов Retina). Вероятно, также понадобится изменить масштаб по умолчанию в основных настройках, например, до 120%. Это не обеспечивает консистентное масштабирование всего Firefox: отредактируйте layout.css.devPixelsPerPx для этого, но это может работать не так, как ожидается.

          Если Firefox не масштабирует шрифты, вы можете создать файл userChrome.css и добавить в него соответствующие стили. Более подробная информация о userChrome.css есть на mozillaZine. Начиная с Firefox 69, файлы userChrome.css и userContent.css не загружаются по умолчанию, если только пользователь не установит свои предпочтения. Откройте страницу расширенных настроек Firefox ( about:config ) и установите параметр toolkit.legacyUserProfileCustomizations.stylesheets на True , затем перезапустите Firefox для применения изменений.

          ~/.mozilla/firefox/профиль/chrome/userChrome.css

          @namespace url(«https://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul»); /* #tabbrowser-tabs, #navigator-toolbox, menuitem, menu, . */ * < font-size: 15px !important; >/* exception for badge on adblocker */ .toolbarbutton-badge

          Если вы используете HiDPI-монитор вместе с другим монитором, вы можете использовать дополнение ffreszoom, регулирующее масштаб страницы, если обнаруживает использование большого монитора (уровень и порог масштабирования настраиваются). Изменение внутренних настроек CSS DPI через расширение в настоящее время не поддерживается [3].

          Если вы используете Wayland, смотрите Firefox (Русский)#Wayland для информации по включению опционального бэкенда Wayland в firefox . Это также применимо к thunderbird .

          Chromium / Google Chrome

          Chromium должен использовать настройки #GDK 3 (GTK 3).

          Для переопределения настроек можно добавить флаг —force-device-scale-factor , который изменит масштаб интерфейса браузера и содержимого страниц. Например: chromium —force-device-scale-factor=2 .

          При использовании этой опции значение 1 означает обычный размер. Можно использовать дробные значения. Чтобы сделать изменение постоянным, для Chromium вы можете добавить его в ~/.config/chromium-flags.conf :

          ~/.config/chromium-flags.conf
          --force-device-scale-factor=2

          Для Chrome используйте ~/.config/chrome-flags.conf .

          Если вы используете HiDPI-монитор вместе с другим монитором, вы можете использовать расширение reszoom, чтобы автоматически менять уровень масштабирования под активный экран.

          Если вы используете Wayland, включите поддержку нативного Wayland, чтобы не было размытости. Смотрите также Chromium#Incorrect HiDPI rendering.

          Opera

          Opera должна использовать настройки #GDK 3 (GTK 3).

          Для переопределения настроек можно добавить флаг —alt-high-dpi-setting=X , где X означает желаемый DPI, например —alt-high-dpi-setting=144 . Новые версии Opera автоматически определяют DPI через настройки DPI шрифта (в KDE: Использовать другой DPI).

          Gimp 2.10

          Gimp 2.10 всё ещё использует GTK 2, поэтому родной поддержки HiDPI не имеет. Для увеличения значков можно открыть Параметры > Интерфейс > Тема значков и выбрать Огромный размер значков или другое подходящее значение.

          Если шрифты меню слишком маленькие, вы можете обновить существующую тему, скопировав её из /usr/share/gimp/2.0/themes/ в ~/.config/GIMP/2.10/themes/ и изменив gtk-font-name и font_name в gtkrc на что-нибудь побольше, например Sans 30 . Затем выберите новую тему через Параметры > Интерфейс > Тема. При копировании не забудьте переименовать новый каталог во что-то отличное от оригинального имени (например, Dark > DarkHighDPI).

          Также можно попробовать gimp-hidpi (инструкции по установке устарели и относятся к версии 2.8, в Gimp 2.10 тема должна быть установлена в ~/.config/GIMP/2.10/themes/ ).

          Более новая версия gimp-devel AUR использует GTK 3 и поэтому поддерживает Wayland и HiDPI. Размер значков и текста можно настроить через Параметры > Интерфейс > Тема значков/Дисплей соответственно.

          Inkscape

          Можно настроить размер значков через Параметры > Интерфейс > Тема. [4][5]

          Приложения Java

          AWT/Swing

          Java-приложения, использующие фреймворк AWT/Swing, можно масштабировать через свойство ВМ sun.java2d.uiScale при запуске java . Значение может быть дробным числом или процентами. Например:

          java -Dsun.java2d.uiScale=2 -jar приложение_на_swing.jar java -Dsun.java2d.uiScale=300% -jar приложение_на_swing.jar

          Начиная с Java 9 также используется переменная окружения GDK_SCALE .

          На данный момент Java AWT/Swing (вплоть до OpenJDK 13) фактически поддерживает только целочисленные значения. Значения -Dsun.java2d.uiScale=250% или GDK_SCALE=2.5 будут обрабатываться аналогично значениям -Dsun.java2d.uiScale=2 или GDK_SCALE=2 .

          JavaFX

          Java-приложения, использующие JavaFX, можно масштабировать через свойство ВМ glass.gtk.uiScale при запуске java . Значение может быть целочисленным процентом, целочисленным значением DPI (где 96dpi означает масштаб 100% , а, например, 192dpi означает масштаб 200% ) или дробным значением. Например:

          java -Dglass.gtk.uiScale=200% -jar приложение_на_jfx.jar java -Dglass.gtk.uiScale=192dpi -jar приложение_на_jfx.jar java -Dglass.gtk.uiScale=2.0 -jar приложение_на_jfx.jar

          JavaFX прекрасно поддерживает дробные значения. Использование значений вроде -Dglass.gtk.uiScale=250% или -Dglass.gtk.uiScale=2.5 даёт ожидаемый результат.

          AWT/Swing и JavaFX вместе

          Некоторые Java-приложения используют JavaFX и AWT/Swing совместно (через javafx.embed.swing.JFXPanel ). В этом случае настройки AWT/Swing будут влиять и на JavaFX, а настройка -Dglass.gtk.uiScale не будет иметь никакого эффекта.

          IDE от JetBrains

          Продукты JetBrains (IntelliJ IDEA и другие IDE) поддерживают два режима HiDPI (JRE-managed и IDE-managed). Последовательность определения коэффициента масштабирования системы описана в [6]:

          1. Свойство Java – -Dsun.java2d.uiScale
          2. gsettings(1) – ubuntu.user-interface/scale-factor или org.gnome.desktop.interface/scaling-factor
          3. GDK_SCALE и GDK_DPI_SCALE
          4. Xresources – Xft.dpi
          5. 1.0

          Для решения проблем обратитесь к диалогу «Show HiDPI Info» через поиск «Shift Shift».

          При использовании разного масштабирования на разных мониторах может возникнуть проблема, когда IntelliJ не распознаёт реальное, исходное разрешение монитора. У некоторых пользователей получалось решить проблему добавлением опции -Dsun.java2d.uiScale.enabled=true в файле название_ide.vmoptions (Help > Edit custom VM options).

          Если это не сработает, на Wayland может быть включена экспериментальная опция GTK scale-monitor-framebuffer (смотрите раздел #Wayland выше). В настоящее время продукты JetBrains работают на Xwayland и пока не имеют встроенной поддержки Wayland. Это делает рендеринг в продуктах JetBrains несовместимым с фреймбуфером масштабирования монитора. Отключение фреймбуфера может решить проблемы размытых шрифтов и рендеринга в продуктах JB, но, увы, приводит к отключению дробного масштабирования.

          Обратите внимание, что на PyCharm eap (2023.2.2 RC) масштабирование, управляемое через IDE, не работает. В качестве обходного пути удалите eap-версию и установите стабильную.

          Maple

          Отмасштабировать Maple под HiDPI можно с помощью решения AWT/Swing. Но его нужно добавить в каталог установки Maple в каталог-maple/bin/maple в JVM_OPTIONS :

          каталог-maple/bin/maple
          . JVM_OPTIONS="-Dsun.java2d.uiScale=2 . " .

          В качестве альтернативы можно использовать переменную окружения GDK_SCALE :

          $ GDK_SCALE=2 каталог-maple/bin/xmaple %f

          LibreOffice

          LibreOffice на всех бэкендах VCL берёт настройки из соответствующих инструментариев. Есть ошибка, из-за которой бэкенд kf5 на Wayland не масштабируется [7]. Вместо этого используйте бэкенд gtk3 . Смотрите LibreOffice (Русский)#Темы оформления.

          MATLAB

          Последние версии MATLAB] (R2017b) позволяют задавать коэффициент масштабирования[8]:

          >> s = settings;s.matlab.desktop.DisplayScaleFactor >> s.matlab.desktop.DisplayScaleFactor.PersonalValue = 2

          Изменения применяются после перезапуска.

          Это может стать утомительным, если менять масштаб нужно часто. Для упрощения можно использовать скрипт:

          ~/bin/matlab-scale
          #!/bin/sh exec matlab -r "s = settings;s.matlab.desktop.DisplayScaleFactor.PersonalValue=$1;quit" -nodesktop -nosplash

          Для изменения масштаба на 3:

          $ matlab-scale 3

          Приложения Mono

          Согласно [9] [устаревшая ссылка 2023-04-23 ⓘ] , приложения Mono масштабируются как GTK 3. Точный метод зависит от графической библиотеки: GtkSharp, очевидно, опирается на Gtk, в то время как Windows Forms (libgdiplus) просто смотрит настройки Xft.

          NetBeans

          NetBeans позволяет управлять размером шрифта своего интерфейса с помощью параметра —fontsize при запуске. Чтобы сделать это изменение постоянным, отредактируйте файл /usr/share/netbeans/etc/netbeans.conf и добавьте параметр —fontsize к свойству netbeans_default_options .[10]

          Размер шрифтов редактора можно контролировать в меню Tools > Option > Fonts & Colors.

          Размер шрифта окна вывода можно контролировать в меню Tools > Options > Miscelaneous > Output.

          OBS Studio

          OBS 29 поддерживает HiDPI без дополнительной настройки.

          Для старых версий OBS рекомендовалось установить переменную окружения QT_AUTO_SCREEN_SCALE_FACTOR=0 , чтобы отключить Qt’s hi-dpi migration mode, и установить тему Yami. Не используйте тему Yami в OBS 29 и новее, так как она больше не нужна и приведёт к ошибкам.

          Skype

          Spotify

          Масштаб можно изменить с помощью сочетаний клавиш Ctrl++ для увеличения, Ctrl+- для уменьшения и Ctrl+0 для масштаба по умолчанию. Масштаб будет сохранён в ~/.config/spotify/Users/YOUR-SPOTIFY-USER-NAME/prefs , возможно, вам придётся создать этот файл самостоятельно:

          ~/.config/spotify/Users/YOUR-SPOTIFY-USER-NAME/prefs
          app.browser.zoom-level=100

          Также Spotify может быть запущен с пользовательским коэффициентом масштабирования, который будет умножен на значение, указанное в ~/.config/spotify/Users/YOUR-SPOTIFY-USER-NAME/prefs , например

          $ spotify --force-device-scale-factor=1.5

          Steam

          Официальная поддержка HiDPI
          • С 25 января 2018 года в бета-программе появилась поддержка HiDPI, которая должна работать автоматически.
          • Через Steam > Настройки > Интерфейс установите флажок Увеличить текст и значки в соответствии с размером монитора (требуется перезапуск).
          • Если масштаб не определился автоматически, используйте GDK_SCALE=2 для установки нужного коэффициента масштабирования.
          • Если это не сработает, используйте steam -forcedesktopscaling 2 или установите переменную окружения STEAM_FORCE_DESKTOPUI_SCALING=2.0 . [11]. После обновления интерфейса в 2023 году также поддерживается дробное масштабирование вроде 1.25 .
          Неофициальная

          Для увеличения размера шрифта интерфейса можно установить HiDPI-Steam-Skin. Хотя он не идеален, он повышает удобство использования.

          Примечание: В README скина указаны несколько возможных мест для размещения скина. Правильную папку из них можно определить по наличию файла skins_readme.txt .

          MetroSkin Unofficial Patch также помогает в работе с HiDPI на Steam в Linux.

          Sublime Text 3

          Sublime Text 3 имеет полную поддержку масштабирования. Перейдите в Preferences > Settings и добавьте «ui_scale»: 2.0 в ваши настройки.

          Thunderbird

          Смотрите #Firefox. Для открытия страницы about:config , перейдите в Настройки > Основные > Редактор настроек (кнопка в самом низу).

          VirtualBox

          Примечание: Это относится только к KDE с включенным масштабированием.

          VirtualBox также применяет общесистемное масштабирование к мониторам виртуальных машин, что уменьшает максимальное разрешение внутри виртуальных машин на коэффициент масштабирования (смотрите [12]).

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

          $ QT_SCALE_FACTOR=0.5 VirtualBoxVM --startvm название-вм 

          VMware

          Текст в приложении VMware отображается в размере, соответствующем настройкам системы, но значки маленькие, а между элементами интерфейса слишком маленькие отступы.

          Как описано в #GDK 3 (GTK 3), вы можете использовать GDK_SCALE для дальнейшего увеличения масштаба всего пользовательского интерфейса (включая значки и отступы), а затем использовать GDK_DPI_SCALE для уменьшения масштаба только текста до приемлемого размера.

          Например, чтобы получить окончательный коэффициент масштабирования 2x:

          $ GDK_SCALE=2 GDK_DPI_SCALE=0.5 vmware

          Приложения Wine

          $ winecfg

          и на вкладке «Графика» измените «Разрешение экрана». Это влияет только на размер шрифта.

          Zathura

          Просмотр документов нормально работает из коробки.

          Размер шрифта интерфейса можно изменить через файл настроек (обратите внимание, что «font» это опция girara):

          set font "monospace normal 20"

          Zoom

          Задайте переменную scaleFactor в ~/.config/zoomus.conf .

          Для Flatpak-версии задайте переменную окружения QT_SCALE_FACTOR (например 0.5 [13]). Это также можно сделать с помощью графического инструмента Flatseal.

          Gazebo

          Gazebo отображает только верхнюю левую часть вида, а не весь вид. Чтобы исправить это, необходимо установить переменную окружения Qt.

          Для запуска Gazebo:

          $ QT_SCREEN_SCALE_FACTORS=[1.0] gazebo

          Для запуска симуляции ROS:

          $ TURTLEBOT3_MODEL=burger QT_SCREEN_SCALE_FACTORS=[1.0] roslaunch turtlebot3_gazebo turtlebot3_world.launch

          Создание псевдонима вроде gazebo=»QT_SCREEN_SCALE_FACTORS=[1.0] gazebo» работает в первом случае, но не работает во втором.

          Fcitx

          Можно изменить FontSize в ~/.config/fcitx/conf/fcitx-classic-ui.config .

          Для Fcitx5 укажите Font в двойных кавычках в ~/.config/fcitx5/conf/classicui.conf .

          Неподдерживаемые приложения — через сетевой уровень

          Для масштабирования приложений можно использовать run-scaled-git AUR [ссылка недействительна: package not found] (который использует xpra ).

          Другой способ — запустить приложение на весь экран без декораций окна на отдельном рабочем столе VNC, а затем масштабировать VNC-просмотрщик. С помощью vncdesk-git AUR вы можете создать рабочий стол для каждого приложения отдельно, а затем запустить сервер и клиент простой командой, например vncdesk 2 .

          В x11vnc есть экспериментальная опция -appshare , которая открывает по одному просмотрщику на каждое окно приложения. Возможно, с этим можно что-то придумать.

          Неподдерживаемые приложения — через Weston

          Это несетевое и потенциально аппаратно ускоряемое решение. Базовый пример выглядит так:

          $ weston --xwayland --socket=testscale --scale=2 $ DISPLAY=:1 WAYLAND_DISPLAY=testscale приложение 

          Отдельный файл настроек weston.ini , используемый с weston —config , может сделать всё покрасивее:

          [core] idle-time=0 [shell] panel-position=none locking=false

          Значение DISPLAY должно быть тем, которое использует Xwayland. Если обычный Xorg работает на :0 , то Xwayland скорее всего будет использовать :1 . Можно проверить файлы в /tmp/.X11-unix .

          Для запуска приложений в отдельных окнах изменяйте параметры —socket и WAYLAND_DISPLAY + DISPLAY для каждого приложения. Правда, заскриптовать это проблематично из-за того, что DISPLAY должен быть небольшим целым числом.

          Несколько экранов

          Настройки HiDPI применяются ко всему рабочему столу, поэтому внешние мониторы без HiDPI будут отображать всё слишком крупно. Однако установка различных коэффициентов масштабирования для разных мониторов уже поддерживается в Wayland.

          Экран сбоку

          Можно использовать опцию scale в xrandr в качестве обходного пути. Например, если есть не-HiDPI монитор (DP1) справа от встроенного HiDPI дисплея (eDP1), можно выполнить:

          $ xrandr --output eDP-1 --auto --output DP-1 --auto --scale 2x2 --right-of eDP-1

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

          Также можно настроить параметр sharpness для уменьшения размытия, вызванного масштабированием.

          • Решение с —scale 2×2 может не работать на некоторых картах NVIDIA, решения пока что нет. [14] Возможный обходной путь — задать ForceFullCompositionPipeline=On в CurrentMetaMode через nvidia-settings . Смотрите [15].
          • Если вы используете драйвер modesetting и мышь мерцает, для решения проблемы можно задать экрану, который не масштабировался, масштаб 0.9999×0.9999.

          Несколько внешних мониторов

          При масштабировании нескольких внешних мониторов, имеющих более низкое разрешение, чем встроенный дисплей HiDPI, могут возникнуть проблемы. В этом случае вы можете попробовать понизить масштаб дисплея HiDPI, например, с помощью:

          $ xrandr --output eDP1 --scale 0.5x0.5 --output DP2 --right-of eDP1 --output HDMI1 --right-of DP2

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

          Дублирование экрана

          Если вы хотите просто выводить одну и ту же картинку на оба экрана, то это просто.

          Если AxB это разрешение дисплея HiDPI (например, 3200×1800) и CxD это разрешение внешнего монитора (например, 1920×1200):

          $ xrandr --output HDMI --scale [A/C]x[B/D]

          В данном примере получится следующее (3200/1920 = 1.66 и 1800/1200 = 1.5):

          $ xrandr --output HDMI --scale 1.66x1.5

          Пример для экранов UHD и 1080p (3840/1920=2 2160/1080=2):

          $ xrandr --output HDMI --scale 2x2

          Также можно настроить параметр sharpness для уменьшения размытия, вызванного масштабированием.

          Инструменты

          Есть инструменты для автоматизации выполнения вышеупомянутых команд.

          • Этот скрипт настраивает внешний дисплей без HiDPI над внутренним дисплеем с HiDPI.
          • xrandr-extend.
          • xlayoutdisplayAUR — это консольный фронтенд для xrandr, который определяет и устанавливает правильный DPI: README

          Консоль Linux (tty)

          Встроенные шрифты

          Консоль Linux изменяет шрифт на TER16x32 (основан на ter-i32b из terminus-font [16]), основываясь на количестве пикселей по вертикали и горизонтали дисплея[17] независимо от его физического размера. Если ваш монитор не распознался как HiDPI, шрифт по умолчанию можно изменить. Для этого добавьте fbcon=font:TER16x32 в параметры ядра. 32-пиксельные шрифты — это максимум, поддерживаемый ядром Linux, в некоторых случаях этого может быть недостаточно.

          Внешние шрифты (tty)

          Самые крупные шрифты, присутствующие в пакете kbd , — latarcyrheb-sun32 и solar24x32 . Другие пакеты, например terminus-font , содержат дополнительные альтернативы, такие как ter-132n (обычный) и ter-132b (полужирный). Подробнее о настройке можно почитать в разделах Консоль Linux#Шрифты и Консоль Linux#Постоянные изменения, в частности, для применения настройки шрифта в early userspace.

          После изменения шрифта он часто искажается и становится нечитаемым при переходе на другие виртуальные консоли ( tty2-6 ). Для исправления можно принудительно задать определённый режим для KMS, например video=2560×1600@60 (подставьте родное разрешение вашего HiDPI дисплея) и перезагрузиться. При использовании меньших разрешений текст будет выглядеть более крупным, но при этом пикселизированным.

          При загрузке через UEFI может оказаться так, что консоль и загрузчик ограничены низким разрешением, несмотря на правильные настройки KMS. Это может быть вызвано тем, что в настройках UEFI включена legacy/BIOS загрузка. Её отключение позволит системе загрузиться с правильным разрешением.

          kmscon

          Для полноценной поддержки HiDPI можно использовать KMSCON.

          Смотрите также

          • Ultra HD 4K Linux Graphics Card Testing (Nov 2013)
          • Understanding pixel density
          • Mixed DPI and the X Window System

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *