HiDPI в Linux

    HiDPI
    Aqua Mine

    Введение

    После многолетнего доминирования дисплеев с высокой плотностью пикселей на мобильных устройствах, данная тенденция наконец-то дошла и до лаптопов с десктопами. По моему мнению, производители не ставили HiDPI-матрицы в основном из-за слабой поддержки DPI, отличных от 96, в Windows. К счастью, ситуация заметно улучшилась с выходом Windows 8 с Modern UI, хотя в десктопном режиме все еще далеко не идеальная — люди до сих пор жалуются на 3200×1800 при 13.3" в лаптопах и сомневаются о покупке 4K UHD 23.8"-монитора.

    DPI и Linux

    Возможность установки произвольного значения DPI появилась еще во времена Xfree86, но следует понимать, что это просто значение, которое ничего не делает само по себе. Его считывают и используют программы и компоненты, которые и принимают решение, каким образом отразить изменение DPI на экране. Если текст следует установленному значению DPI в 95% случаев (спасибо xft!), то размер элементов зависит от используемого окружения рабочего стола и тулкитов, на которых написаны приложения.

    GTK+ 3-приложения поддерживают как целочисленный скейлинг элементов и дробный скейлинг шрифтов, так и изменение DPI на лету, без перезапуска приложений. Скейлингом элементов управляет переменная окружения GDK_SCALE, а скейлингом шрифтов — GDK_DPI_SCALE.
    По умолчанию, шрифты скейлятся вместе с элементами. Таким образом, при DPI 96 и GDK_SCALE=2, вы получите шрифт, словно он с DPI 192. Чтобы отменить скейлинг шрифтов, достаточно установить переменную окружения GDK_DPI_SCALE в 0.5 (для GDK_SCALE=2).
    Qt4 не умеет скейлить элементы. Для применения нового значения DPI требуется перезапуск приложения.
    Qt5, начиная с версии 5.4, поддерживает целочисленный скейлинг элементов через переменную окружения QT_DEVICE_PIXEL_RATIO. DPI менять на лету нельзя, как и в Qt4, но работы в этом направлении ведутся и будут доступны с релизом Qt 5.6, как и скейлинг на каждый монитор отдельно.
    WxWidgets-приложения ведут себя так же, как GTK+ 3, только не поддерживают скейлинг элементов.

    Я попытался выяснить, какие DE можно комфортно использовать с HiDPI-мониторами. Тестирование проводилось на лаптопе с 12.5" 1366×768 (125 DPI) с подключенным внешним 23.8"-монитором с разрешением 3840×2160 (185 DPI).

    Gnome 3



    Поддержка высокой плотности пикселей в Gnome 3 реализована путем двойного скейлинга всех элементов и шрифтов, т.е. технически DPI устанавливается в значение 192. Явно задать другой DPI можно следующей командой:
    gsettings set org.gnome.settings-daemon.plugins.xsettings overrides 
       "{ 'Gdk/WindowScalingFactor':<2>, 'Gdk/UnscaledDPI':<189440> }"

    Где 189440 = 185 * 1024. И не забудьте про GDK_DPI_SCALE!
    Все элементы интерфейса DE выглядят замечательно, стандартные приложения тоже. Поддержки скейлинга на каждый монитор отдельно нет.

    Cinnamon



    Так как Cinnamon написан с использованием GTK+ 3, поддержка HiDPI у него реализована примерно так же, как у Gnome 3: двойное увеличение элементов, шрифтов. Все выглядит так же хорошо, так и в случае Gnome 3. Как вы можете заметить, единственное приложение на скриншоте, которое выглядит мелко — VLC, он написан на Qt4. Поддержка скейлинга на каждый монитор также отсутствует.

    KDE 5



    Большинство KDE-приложений, написанных на QtQuick, умеют работать с любым DPI. Как таковая кнопка для включения HiDPI-режима отсутствует, но при установки значения DPI в 185 не только шрифты, но и элементы автоматически увеличиваются. По какой-то причине, из Plasma 2 убрали возможность ресайза многих вылезающих меню, например, главного меню запуска приложений Kicker, или диалога выбора сети апплета NetworkManager. Это вносит неудобства и несколько портит впечатление от DE, но, к счастью, есть обходные пути. Некоторые приложения, например, файловый менеджер Dolphin, все еще полноценно не портированы на Qt5, поэтому выглядят хуже, чем могли бы при использовании Qt5.
    Возможность использования разных DPI на разных мониторах отсутствует. Что ж, ждем Qt 5.6.
    На скриншоте вы можете видеть прекрасный баг видеоподсистемы DRI3, которая задействована в Fedora 22 по умолчанию — скриншотер KSnapshot снял свой собственный диалог сохранения.

    Mate



    Mate поддерживает установку произвольного значения DPI. Скейлинга как такового нет, но многие приложения поддерживают работу с произвольным DPI, хоть и местами едут. Иконки не масштабируются. Хороший выбор для владельцев мониторов с граничным значением DPI, когда целочисленный скейлинг не подходит. Скейлинга на каждый монитор отдельно нет.

    Unity



    Unity — единственная среда рабочего стола, которая поддерживает скейлинг на каждый монитор отдельно. К сожалению, скейлятся только элементы самой DE (левая и верхняя панель, главное меню), но не приложения, что практически не дает какой-то реальной пользы. Вместо указания DPI, Unity предлагает выбрать коэффициент масштабирования, исходя из базового значения DPI в 96. Я установил ползунок в значение 1.75, задав таким образом DPI 168.
    В целом, ситуация напоминает Gnome 3, что неудивительно, ведь Unity тоже написан на GTK+ 3.

    Есть ли жизнь с двумя мониторами?

    Хоть ни один из тулкитов и DE не поддерживает работу с мониторами с разной плотностью пикселей, и все выглядит либо слишком крупно, либо слишком мелко, существует возможность скейлинга каждого монитора отдельно средствами X11. Это позволяет без особых проблем вывести не слишком требовательную к качеству отображения картинку, например, при кратковременном подключении ноутбука к проектору.
    Для осуществления такого скейлинга, нам нужно установить виртуальное повышенное разрешение на дисплее с меньшим DPI и уменьшить его до оригинального разрешения средствами X11:

    xrandr --output LVDS1 --pos 0x0 --scale 2x2 --fb 6572x2160
    xrandr --output DP1 --scale 1x1 --pos 2732x0

    где 2x2 — коэффициент скейлинга по горизонтали и вертикали, а 6572 = 1366*2 + 3840 — сумма горизонтального разрешения обоих мониторов с учетом скейлинга.



    Заключение

    Если у вас используется только один монитор, с двойной (192 DPI) или тройной (288 DPI) плотностью пикселей, то можете использовать практически любой современный DE и приложения без особых проблем. Если же у вас какое-то граничное значение DPI, для которого не подходит целочисленный скейлинг (150, 240), либо же если вы часто используете два монитора, только один из которых с высокой плотностью пикселей, то придется страдать и использовать скейлинг средствами X11, смотря на размытые шрифты. Остается надеется, что с приходом Qt 5.6 ситуация изменится в лучшую сторону, а там и GTK+ 3 подтянется.

    Полезности

    xsettingsd — применение DPI без перезапуска GTK+ 3-приложений из не-Gnome окружения
    Используем высокие разрешения на неподдерживающих их видеокартах
    Share post

    Similar posts

    Comments 57

      +3
      Под win 8.1 столкнулся с проблемой, когда ноутбук имеет большее разрешение (2880x1620) нежели подключенный монитор (1920х1080) при меньшей диагонали у ноутбука. 15 и 23 соответственно.
      Убил уйму времени на попытки исправить ситуацию — результата ноль.
      Несмотря на некоторую поддержку и наличие множества тулов, даже для стандартных приложений невозможно настроить нормальный вид.
        0
        О, а за переменные для QT спасибо. Меня большинство qt'шных приложений сильно раздражало тем, что не подхватывало мои настройки больших шрифтов (я люблю использовать большой монитор с большим разрешением на удалении от глаз).
          0
          Вряд ли вы будете рады, установив двойной скейлинг в Qt. Все будет слишком большое. А шрифты, которые xft, должны подхватываться, если вы установили правильный DPI в Xft и xrandr.
            0
            У меня xfce в качестве среды. Но все KDE'шные программы используют дефолтные настройки (?) KDE и рисуют мелко (8-10 п.). У меня же нормальный режим шрифтов — хотя бы 16, а лучше 22п.

            Если вы знаете, как сказать kde'шным приложениям дефолтный размер шрифта, будут очень благодарен.
              +1
              После покупки ноутбука с HiDPI (2880x1620) набросал маленькую статейку, чтобы не забыть. У меня тоже xfce, всё замечательно практически везде:
              www.altlinux.org/HiDPI
                0
                Создайте ~/.Xresources со следующим текстом:
                Xft.dpi: 185
                  0
                  qtconfig/qtconfig-qt4 не спасает?
                +7
                <зануда>От вас точно не ожидал такого написания «Qt». QT — QuickTime, а вот Qt никогда не позиционировался заглавными, ни при Trolltech, ни при следующих maintainer'ах.</зануда>
                0
                Mate не поддерживает HiDPI. Элементы слишком мелкие, попадать в них трудно.
                Разве?
                Если увеличить DPI (вроде было за кнопкой «Details» в диалоге на вашем скрине) — разве все элементы не увеличатся пропорционально?
                  0
                  Большое спасибо. Понятия не имею, как я мог упустить эту кнопку. DE игнорировал мои попытки установить DPI стандартными средствами (через xrandr и xft), поэтому я и сделал такой вывод, не найдя в гугле подтверждения поддержки HiDPI. Обновил статью, еще раз спасибо!
                    0
                    Иконки не масштабируются
                    Насколько я вижу по скриншоту, — судя по всему, иконки таки масштабируются, но только векторные. Или в зависимости от программы, сходу непонятно. Обратите внимание на трей, иконку в поле поиска в центре управления. Масштабируются правда криво, ну и далеко не все (векторных почти нет?).
                    А, ещё на рабочем столе иконки можно ручками порастягивать :)
                      0
                      Не, ну векторные-то понятное дело масштабируются. Имеются ввиду, конечно же, растровые. Plasma 5, например, и растровые масштабировать умеет.
                  –3
                  Пока что Mac OS впереди планеты всей. Новый софт выглядит кристально четко, старый размывается, но никакие элементы никуда не ползут. На двух экранах тоже все ок, вплоть до того, что можно перетащить программу с экрана ноутбука (Retina) на обычный FullHD, как будто никакой разницы в DPI нет вообще. Окно просто перерисовывается и сразу работает дальше.
                    +1
                    Впереди планеты всей? Хоть сам макось и люблю, но не подскажете ли, как увеличить элементы интерфейса и шрифты хотя бы на том же ACD с его разрешением 2560x1440? Для меня, как человека с проблемами зрения, на таком разрешении все элементы интерфейса и шрифты кажутся мелкими и напрягают глаза. А вот возможности их увеличить немного (как на win8 например) я не нашёл. И подозреваю, что её просто-напросто не существует.
                      –1
                      Уменьшить разрешение экрана — не вариант? Или слишком сильно увеличивает?
                      На одну позицию левее от Best (Retina)

                      Раньше у меня была какая-то сторонняя программка, висела в панели меню и позволяла выбирать разрешение экрана из большего списка вариантов, чем предлагает Эпл.
                        0
                        Пробовал, но мыло для глаз это вообще убийство.
                          0
                          Жизнь — боль.
                          Понимаю.
                          У меня тоже внешний монитор с чуть повышенным PPI (SyncMaster 2343BW, 2048x1152@23", 102 PPI), так что всё либо слегка мелковато, либо мыло, либо вёрстка сайтов и приложений разъезжается (если увеличить значение DPI в Windows), так что на будущее я решил, что для меня будет идеальным размер элементов как при разрешении FullHD на 27", но экран с низким разрешениям я покупать не хочу, HiRes на 27" мой макбук не потянет, а апгрейд железа с покупкой 5K-монитора пока не потяну я :)
                            0
                            Этот топик про HiDPI — ау! — равно как и комментарии которые вы якобы парируете. И накой приплетать свои личные трудности с ACD…
                              0
                              HiDPI (High Dots Per Inch) displays are screens with a high resolution in a relatively small format.
                              ACD имеет размер 27 дюймов при разрешении 2580x1440 (выше среднего для таких размеров). Чем мой пример не подходит под определение hidpi?
                                0
                                У вас DPI 109, что никак нельзя назвать HiDPI, даже с натяжкой.
                          +1
                          Что такое ACD? Мы сейчас беседуем о немного разных вещах. Под HiDPI я подразумеваю в первую очередь дисплеи, на которых можно включить нормально 2X скейл и не офигевать от того, какое все мелкое/крупное/мыльное/поехало. Это в Mac OS есть. В том же MacBook Pro Retina на 15-ти дюймах используется HiDPI разрешение 1440x900 (при реальном 2880x1800), что на выходе дает и очень четкую картинку, и нормальный размер шрифтов — на мой вкус это гораздо комфортнее, чем 1920х1080 на тех же 15ти дюймах в виндовых ноутбуках. Но Apple пошла дальще, и при желании вы можете использовать и виртуальные более высокие/низкие разрешения, и получить больше информации/более крупную картинку, при желании. Это вам и указали в комментарии выше, со скрином настроек экрана.
                          Если именно ваша проблема заключается в том, что какой-то производитель воткнул разрешение 2560x1440 в экран, который не «подходит» к нему ни на обычном скейлинге, ни на HiDPI, то это немного не проблема ОС. Да и, повторюсь, я говорил о том, что Mac впереди в поддержке HiDPI, а не в качестве скейла на всем зоопарке разрешений.
                            +5
                            Если именно ваша проблема заключается в том, что какой-то производитель воткнул разрешение 2560x1440 в экран, который не «подходит» к нему ни на обычном скейлинге, ни на HiDPI, то это немного не проблема ОС.
                            Да нет, это все же целиком проблема тулкитов и ОС. На всех мобильных ОС можно выставить произвольный DPI, и все будет выглядеть замечательно везде и всегда. Хочется такую же поддержку от десктопных ОС.
                              +2
                              В целом — согласен. Но тут надо заметить, что у десктопных ос намного дольше шел прогресс — ведь сколько лет мониторы росли и в диагонали, и в разрешении, не особо меняя размер пиксела. Судя по всему это и повлияло, в отличии от мобильников, где приходится вертеться и на 10 дюймах с 1024х768 и на 5 дюймах с 2560х1440.
                              Лично меня в данный момент больше всего раздражает тот случай, когда программа в HiDPI имеет нормальный шрифт, но маленькие иконки, это очень портит внешний вид и убивает удобство (т.к. все равно в итоге мелко и налазит друг на друга), я лучше предпочту нормально растянутое мыло, но с правильными пропорциями.
                                0
                                Лично меня в данный момент больше всего раздражает тот случай, когда программа в HiDPI имеет нормальный шрифт, но маленькие иконки, это очень портит внешний вид и убивает удобство (т.к. все равно в итоге мелко и налазит друг на друга), я лучше предпочту нормально растянутое мыло, но с правильными пропорциями.
                                Как раз это и исправляет скейлинг средствами тулкита, причем шрифты не будут мыльными. Увеличить только размер шрифтов, установив правильный DPI, можно практически всегда, и практически всегда это работает вменяемо. Но скейлинг реализован только целочисленный, что не всегда удобно.
                              0
                              «Какой-то производитель» это конечно забавно слышать, учитывая то, что я речь вёл про Apple Cinema Display. За уточнение спасибо конечно (хотя это уточнение стоило помещать в ваш первый коментарий). Хотя тот же win 8.1 по-моему тоже вполне себе может работать с hidpi (о сторонних приложениях речи не идёт, разумеется). Так что утверждение «впереди планеты всей», мягко говоря, голословно.
                                +1
                                Ну, ладно, а «У Apple поддержка HiDPI сделана лучше, чем у других, но все равно хреново» подойдет? :)
                                Был iMac 27, не было проблем ни в винде, ни под Mac. На 100% скейле. Блин. Apple тем и Apple, что они делают хорошо только, грубо говоря, базовые вещи. Если вам нужен скейл 133%, то, к сожалению, действительно будет беда.
                            +5
                            Впереди планеты всей? Все, что может OS X — это двойной скейл, и никакой иначе. 150% — уже нереально. В то время как сейчас, например, есть 15" ноутбуки с разрешением 2880 x 1620. Скейл 200% на них слишком много, а вот 125-150% — в самый раз.
                            В то же время у OS X просто нет в поддерживаемых зоопарка девайсов, и они поступили самым простым способом — банально не делают устройств, на которых нужен скейл, отличный от 200%.
                            На Windows 8.1, если что, нормальные приложения тоже выглядят четко, а старые тоже просто размываются без расползания. И поддержка разного DPI на разных мониторах тоже есть.
                            В общем, не вижу ничего такого в поддержке HiDPI на OS X. Вот в линуксах все действительно как-то грустно пока что.
                              –2
                              Так и правильно делают! Про двойной скейл вы ошибаетесь, на MBPr 15 можно выбрать нестандартные разрешения (хотя если говорить именно технически — вы правы, при выборе 1920x1200 (как раз ваши желаемые 125-150%) ноут на самом деле рендерит все в 3840x2400 и потом загоняет в родные 2880x1800).
                              А вообще — это очень личная фигня, мои глаза наоборот именно пиксель-в-пиксель 200% скейл очень радует.
                              Насчет Windows 8.1 есть отличный тест, где немного с вами не согласны
                              us.hardware.info/reviews/5178/4/hidpi-test-high-resolution-windows-a-complete-nightmare-test
                                +3
                                > ноут на самом деле рендерит все в 3840x2400 и потом загоняет в родные 2880x1800).
                                Ну это ведь жуткий костыль, а не решение. Который, кстати, опять же к мылу приводит. Единственный способ корректно отрисовать что-то с нужным скейлом так, чтобы оно выглядело четко — это отрисовать что-то с большим размером, а не ресайзить постфактум все окно. При чем тут глаза — не понял. Ну да, в худшем случае позиция какого-то элемента интерфейса сместится на один пиксель, но вы правда это заметите на HiDPI экране? Шрифты от зума в 125% этого менее четкими не становятся. Да и 200% никто не запрещает поставить, тогда будет пиксель-в-пиксель. Зато есть выбор.

                                Почитал статью, не вижу, где со мной не согласны. Да, *очень* много приложений либо не поддерживают HiDPI, либо поддерживают не так, как можно было бы. Я с этим согласен. Но это проблема приложений, а никак не ОС. Все средства для поддержки HiDPI в ОС есть, так что это все лишь вопрос времени. Разница с OS X в том, что у нее сейчас на порядки больше юзеров с ретина-экранами, потому и приложений с поддержкой ретины больше.
                                  0
                                  Глаза при том, что я не считаю разрешение 1920x1020 поинтов оптимальным для 15 дюймов. Мне гораздо больше подходит макбуковское 1440x900 поинтов (2880x1800 физических пикселей). Вы же хотите из 2880 x 1620 пикселей со скейлом 125-150% получить тоже что-то в районе 1920х1020 поинтов. Выбор на маке есть, еще раз говорю. И никакого явного мыла на том же «выгляди как 1920х1200» нет.

                                  Про вторую часть, вы ОС пользуетесь или приложениями? Проблема винды в том, что уже есть довольно много ноутов с диплеями больше FullHD, и все это нормально не работает. А на маке даже при запуске ретины приложения максимум были мыльные, но при этом там не ползли кнопки вплоть до того, что их нажимать нельзя
                                    +2
                                    > Вы же хотите из 2880 x 1620 пикселей со скейлом 125-150% получить тоже что-то в районе 1920х1020 поинтов.
                                    Хотел бы я получить из 2880x1620 что-то близкое к 1440х900 по физическим размерам элементов на экране — сделал бы скейл 200-250%, делов-то. Хоть 500%.

                                    Все старые приложения просто замыливаются, ничего никуда не расплывается, как и на Маке. А если же разработчики приложения пытались сделать поддержку HiDPI, но застряли где-то на полпути — ну что ж, это очень хреновое приложение. Такое и на OS X возможно.
                                    Ну и речь про ОС, а не про приложения. На уровне ОС поддержка HiDPI в винде не хуже, все остальное — вопрос времени.
                                      0
                                      В каком месте поддержка в винде не хуже, если тут в списке половина приложений вообще не реагирует на скейл и становится очень мелкой?
                                      us.hardware.info/reviews/5178/8/hidpi-test-high-resolution-windows-a-complete-nightmare-conclusion
                                      Это не нормальное поведение, лучше мыло, чем микроскоп. И я не понимаю, почему вдруг в этом надо обвинять приложение, а не систему. Система не HiDPI приложение должна отобразить в режиме совместимости.

                                      Скачайте скрины из статьи, в конце концов. Пощелкайте виндовые программы (там скрины идут парами — 4К 200%, FullHD 100%), так только 4-5 выглядят одинаково, причем одна из них — эппловский айтюнс. На маке я могу взять любой софт, установить у себя на мониторе хоть 100% скейл, хоть 200%, и ни на какой программе никуда ничего не сдвинется ни на пиксель, и пусть лучше так все из коробки работает, чем сидеть и гадать, как именно перекорежит очередную программу в Windows.
                                        +3
                                        Приложения под винду можно разбить на три группы:
                                        1) Приложения, которые не поддерживают HiDPI и не пытаются делать вид, что поддерживают его. Они нормально увеличиваются систем «как есть» с ожидаемым мылом. Тут к системе претензий никаких, верно?
                                        2) Приложения, которые фактически не поддерживают HiDPI, но при этом врут системе о том, что имеют поддержку. Осознанно или нет — другой вопрос. Вся проблема здесь.
                                        3) Приложения, которые полноценно поддерживают HiDPI.

                                        Собственно, вы жалуетесь на приложения из второй группы. А теперь посмотрим на список из статьи. Кроме FileZilla и uTorrent, все программы, которые не масштабируются (коих, кстати не половина, а всего лишь 6 из 20) — предназначены для работы с графикой или с видео. Какой смысл смотреть в VLC видео в FullHD, если добрая система уполовинит качество в 2 раза? Да, интерфейс мелкий, зато изображение показывается как есть, с максимально возможным качеством. Это именно тот случай, когда микроскоп лучше, чем мыло, ибо в «мыльном» режиме эти приложения показывали бы чушь, ими невозможно пользоваться по назначению.

                                        Скачал скрины из статьи. И понял самое главное — эта статья была написана еще тогда, когда Windows 8.1 даже не вышла. Использовалась Preview-версия системы, и не факт, что в релизе все осталось так же. С тех пор прошло более двух лет.
                                        Вот сейчас поставил uTorrent — никаких перекореженных интерфейсов, как в статье, просто растянутое мыло по умолчанию. И даже если насильно выключить растягивание — все нормально выглядит, ничего друг на друга не налазит. FileZilla — родная поддержка HiDPI, все красиво, разве что иконки немного мыльные. В Photoshop с тех пор полноценная поддержка HiDPI появилась. Подозреваю, что и в большинстве остальных пакетов из списка — тоже.
                                        Таким образом, проблемы с «микроскопом» останутся лишь у старых необновляемых приложений особой корявости.

                                        Так что, опять же, Винда все делает правильно, если это возможно. Если же авторы приложений *врут* системе, при этом фактически не поддерживая HiDPI — то это либо продиктовано требованиями к приложению, либо автор просто не знает о проблеме или не успел его обновить, либо это просто хреновое приложение.
                                0
                                > Все, что может OS X — это двойной скейл, и никакой иначе
                                враньё — там 5 уровней скейла

                                > 150% — уже нереально
                                остаётся только догадываться что имелось ввиду, возможно какие-то личные проблемы со 150%… жаль что без конкретики… по мне так там всё отлично на «дробном» масштабировании по-умолчанию, да и со всеми другими (удивительно даже)

                                > банально не делают устройств, на которых нужен скейл, отличный от 200%
                                ну неправда же… на 4x на 15" всё получается откровенно крупно (крупнее уже только людям с нарушением зрения)

                                Подводя итог:
                                1) Windows — приложения размазываются, complete nightmare, ixbt не рекомендует к покупке hidpi-мониторы для использования под windows в ближайшее время (из осеннего обзора)
                                2) Линукс — всё как-то грустно
                                3) Мак Ось (где скейл работает на *любых*, самых опенсорсных приложениях без размазывания и грусти) — не вижу ничего такого
                                Обоснованно, что сказать.
                                  +1
                                  > где скейл работает на *любых*, самых опенсорсных приложениях без размазывания и грусти
                                  Я уже не знаю, сколько раз мне нужно повторить, что это заслуга самих приложений. Речь шла лишь про саму поддержку HiDPI в ОС. На Макоси просто экспириенс сейчас лучше в целом, ибо не так уж много там необновляемых legacy-приложений. И я не знаю, с чего вы взяли, что на маке *любые* приложения скейлятся без мыла — когда маки с ретиной только вышли, поголовно все сторонние приложения тоже делали мыльцо (а старые приложения и сейчас делают).
                                  Просто среди юзеров Винды HiDPI-мониторы практически не распространены, потому и производители ПО занимаются адаптацией крайне лениво.
                                  > ну неправда же… на 4x на 15" всё получается откровенно крупно
                                  Как же крупно, если точно так же? Эппл увеличил ровно в два раза разрешение, и ровно в два раза увеличил размеры элементов в пикселях. Если для вас это крупно — значит и до ретины было крупно.
                              +1
                              Линус года два назад пел, что все плохо с HIDPI. Воз и нынче там. :(
                              0
                              LXDE (GTK3 же?) и 270-с-чем-то dpi — полёт отличный. Только для wine-приложений приходится понижать разрешение до 1360x768, иначе всё очень мелкое и нечитаемое.
                                +3
                                А сделайте скриншот, интересно, как выглядит. Предполагаю, что у вас 13.3" 3200×1800.
                                  0
                                  Ай, нечаянно соврал. Всего лишь 170 dpi. Всё равно скриншот интересно?
                              0
                              По моему мнению, производители не ставили HiDPI-матрицы в основном из-за слабой поддержки DPI, отличных от 96, в Windows.

                              Нельзя ли уточнить, что именно имеется в виду под «поддержкой DPI, отличных от 96»? Что именно в Windows не поддерживалось?
                                0
                                Вся DPI-aware суета началась уже с приходом Windows Vista, но была реализована не очень, мониторов в то время таких не было, и все на нее забивали. В Windows 7 ситуация уже была лучше, но небольшое количество DPI-aware-приложений в то время все еще не позволяло удобно ей пользоваться, т.к. многие приложения все еще использовали расположение элементов по фиксированным пикселям, а на мыло смотреть никому не хотелось. С приходом WPF, когда появились удобные средства для разработки Per-monitor DPI-aware приложений, ситуация заметно улучшилась, да и Modern UI в Windows 8 заставлял разработчиков сразу задумываться о разных DPI, а с приходом Windows 8 и более-менее вменяемого Per-monitor scaling, уже не так неудобно пользоваться разными мониторами.
                                  +2
                                  Версия ОС, наверно, ни при чем, потому что API для работы с разными DPI есть и в 2000. Шрифты/иконки правильно масштабирубтся и в XP. Т.е. вопрос именно в приложениях.
                                    0
                                    С приходом WPF, когда появились удобные средства для разработки Per-monitor DPI-aware приложений
                                    PM-DPI появился только в Win 8.1, с WPF это не связано.
                                  0
                                  Спасибо за статью, но вы меня расстроили, что DE разные DPI качественно не ставят =(
                                  Как раз планировал покупку 4К монитора
                                    +3
                                    Полгода назад приобрел ноутбук с FullHD 13" экраном и предустановленной Win 8.1. Очень быстро выяснилось, что для части приложений (например MMC, некоторые инсталляторы и некоторое старое ПО) масштабирование не работает (либо нативное dpi, либо жуткое мыло). Установил Ubuntu (wm awesome), выставил приемлемый dpi в конфигах Х-server'а и с тех пор со шрифтами не имел проблемм ни с GTK ни с Qt приложениями.
                                    Есть правда несколько исключений: steam (но там я использую в основном big-picture mode), pyCharm (прилось вручную выставить размер шрифта побольше), Firefox и Thunderbird (интерфейс подхватывает настройки, но для комфортного отображения страниц и писем пришлось изменить параметр layout.css.devPixelsPerPx в about:config). В целом все вполне решаемо и мой личный никому не навязываемый вердикт — поддержка hidpi в линукс ГОРАЗДО лучше чем в WIndows 8.1.
                                      0
                                      Это пока внешний монитор не подцепить с _другим_ DPI. Например тоже FullHD, но только 22-24".
                                      0
                                      Интересно узнать, как сказывается HiDPI на производительность, все же надо отрисовывать в 4 раза большую площадь.
                                        0
                                        Вообще никак не сказывается, а почему должно?
                                          0
                                          Больше точек, больше вычислений, больше размер буферов, для кратного увеличения растра это не проблема, а вот для вектора и шрифтов должно сказываться.
                                            0
                                            Вы испытываете какие-то проблемы с производительностью, если раскрываете окно на весь экран? Или когда увеличиваете размер шрифтов?
                                              0
                                              Во многих случаях размер окна имеет маленькое значение, область за скролом может быть отрисована заранее, да и размеры окон обычно меняются на 1/3, а не в 4 раза. Размер шрифтов в 2 раза не приходилось увеличивать.
                                                +1
                                                Я не видел никакого изменения производительности именно из-за HiDPI. Куда больше влияет само разрешение.
                                        +1
                                        Вышел, кстати, Qt 5.6:
                                        Полная переработка кода для кросс-платформенной поддержки экранов со сверхвысоким разрешением (High-DPI). Новая реализация позволяет автоматически масштабировать интерфейс приложений, написанных для обычных экранных разрешений, для экранов с высоким DPI. Размеры шрифтов, элементов окон, пиктограмм и прочих графических объектов автоматически подстраиваются под имеющееся разрешение. В конфигурациях с несколькими мониторами подобное масштабирование производится на лету при перемещении окна между обычным и High-DPI экраном.
                                          0

                                          А никто не знает, существует ли вариант, аналогичный GDK_DPI_SCALE, но индивидуальный для каждого монитора?


                                          Ситуация: у меня DPI — 144, X-server корректно его определает из EDID, KDE Plasma без каких-то телодвижений его понимает (насколько я знаю, это верно для всего Qt-based с версией >= 5.6) и интерфейс и шрифты выглядят отлично. У меня настроена интеграция внешнего вида с Gtk приложениями, но шрифты в них оченнь маленькие. Спасает установка GDK_DPI_SCALE в 1.5 (96*1.5 = 144), но она действует глобально. Просто даже у xrdb есть возможность устанавливать параметры индвидуально для каждого экрана (xrdb -screen 0 -merge /some/config/file.rc) и тот же Qt от туда вполне может взять полезную информацию, к примеру, о размере курсора (Xcursor.size: ###), а вот GTK как-то забивает на это.

                                          Only users with full accounts can post comments. Log in, please.