Не было печали - на работе подогнали новый ноут. Sony Vaio SVS1511, зверь-машина: 4 ядра, i7-3612QM, RAM 8GB (up to 12GB), SSD 220GB, USB 3.0, матовый 15'' 1920x1080. До этого почти три года сидел на Asus 15'' 1366x768 и десктопах. Соответственно после перехода на новый ноут экранный DPI увеличился почти в полтора раза - спасибо хоть не ретина с ее двухкратным удвоением. Но все равно на экране всё стало очень мелким и работать в таком режиме стало тяжело.
В Unity/Gnome3, как известно, значение DPI больше нельзя выставить вручную так, как это можно было сделать в старом добром Gnome 2. В данный момент там можно выставить только "коэффициент увеличения шрифта" и то, только после дополнительно установки gnome-tweak-tools. Это стало последней каплей, которая окончательно переполнила мое терпение - Unity, давай, досвидания! Поставил XFCE - тот же Gnome 2, только лучше. Установил в настройках разрешающую способность в 120 DPI, в качестве основного выбрал шрифт Ubuntu 10 - все стало отлично. Почти.
Оболочка и родные GTK-, QT-приложения работают замечательно. В редких случаях (Sublime 2) приходится просить увеличить шрифт в редакторе, но практически всё прекрасно отображается и так. Приложения Java/SWT (Eclipse, Xmind) работают также отлично.
Консольный шрифт, там где он нужен (xfce4-terminal, gnome-terminal, guake) приходится доустанавливать вручную (DejaVu Sans Mono 10), иначе он какой-то не такой.
Приложения Java Swing похоже жестко завязаны на фиксированный DPI и игнорируют значение DPI установленное в системе. Установка L&F стиля в значение "GTK+" помогает привести текст в меню, окнах и сообщениях в надлежащий вид. Но даже при установке этого стиля приходится вручную увеличивать размер моноширийного шрифта до 16-18 пунктов для всяких редакторов и отображений результатов. Установить тему GTK+ можно либо покопавшись в настройках приложения (далеко не все это позволяют), либо с помощью опции "-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel" или "-Dswing.systemlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel" в строке запуска. Некоторые приложение не дают настроить L&F в настройках, но при этом еще и игнорируют опцию в командной строке - устанавливая L&F жестко в коде. В таком случае последней надеждой является возможность настройки шрифтов индивидуально (на практике это позволяют многие приложения).
Для Swing-темы JGoodies (Aquafold Datastudion, Soap UI) есть специальные переключатели позволяющие устанавливать необходимый шрифт через системные опции.
JAVA_OPTS="${JAVA_OPTS} -DPlastic.controlFont=\"Ubuntu-plain-18\""
JAVA_OPTS="${JAVA_OPTS} -DPlastic.menuFont=\"Ubuntu-plain-18\""
Firefox и Thunderbird. Меню, окна, сообщения - все хорошо. Контент - плохо, очень мелко. Во многих местах размер шрифтов задается в px - и потом так же честно в мелких пикселах и отображается. Одним из решений является увеличение значения настроек font.minimum-size.* до значения 15 и выше. Это ограничивает размер шрифтов снизу, однако, к сожалению, зачастую приводит к расползанию верстки на сайтах, поскольку шрифты увеличиваются, а вот контейнеры в которых содержится текст - нет. Другим вариантом, который и оказался самым выигрышным, является увеличение значения настройки "layout.css.devPixelsPerPx" до 1.3, что приводит к плавному увеличению всего контента. При этом некоторая пиксел-оптимизированная графика выглядит размыто, но она, к счастью, уже является редкостью и анахронизмом.
Единственным неприятным моментом является то, что затейливые изогнутые табы в Thunderbird при этом визуально расползаются. Я уже оформил баг, а временным решением является корректировка XUL-верстки файлом ${THUNDERBIRD_PROFILE}/chrome/userChrome.css
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
.tab-background {
background: transparent!important;
margin: 0px !important;
}
.tab-background[selected=true] {
background: -moz-Dialog!important;
}
.tabmail-tab:not([selected]):not(:hover) +
.tabmail-tab:not([selected]):not(:hover)::before {
background: transparent!important;
}
В браузере Chromium все еще хуже - там даже интерфейс рендерится без учета системного DPI. Я особо Chromium не пользуюсь, поэтому пока ничего особого не делал - только установил увеличение по-умолчанию в 125% в настройках.
Еще один найденный источник проблем - приложения Wine. Я пользуюсь парочкой виндовых утилит, поэтому пришлось разобраться. Микроскопичность устраняется с помощью настроек в winecfg. Во-первых, на вкладке "Graphic" есть ползунок устанавливающий DPI. Во-вторых, на вкладке "Desktop Integration" можно вручную выставить все шрифты (я поставил везде Ubuntu 10). После этих двух мероприятий приложения Wine выглядят почти также, как и родные.
И последнее - подключение к виртуальной Windows-машине через rdesktop. В Windows уже давно можно изменять общее увеличение/уменьшение размера шрифтов, но оказалось, что в RDP-сеансе изменение этого масштаба игнорируется - он остается таким же мелким. Проблема уже решена оперативным патчем от Микрософт.