Это обновленная версия моего предыдущего ответа, который был связан с Ubuntu 12.04. В 16.04 (Xenial) необходимо 3 шага для правильной установки DPI вместо 2.
Я объясню на примере системы с Ubuntu 12.04 с Gnome Classic и монитора с разрешением 1680x1050. Мои стартовые настройки: xdpyinfo | grep dots
сообщили 96x96 dots
, xrdb -query | grep dpi
сообщили Xft.dpi: 96
, grep DPI /var/log/Xorg.0.log
сообщили о некоторых странных настройках NOUVEAU(0): DPI set to (90, 88)
.
В 16.04 выходные данные всех этих 3 команд были согласованы и равны 96. Хотя такой консенсус лучше, чем беспорядок 12.04, сообщаемое значение жестко закодировано и далеко от реального значения DPI.
Давайте посчитаем оптимальное значение DPI для моего монитора. Действительный размер экрана можно узнать с помощью команды xrandr | grep -w connected
(преобразовать вывод в сантиметры) или с помощью длинной линейки вручную. В моем случае: X = 47.4cm
; Y = 29.6cm
, Разделите их на 2.54 , чтобы получить размер в дюймах: X ~ 18.66in
; Y ~ 11.65in
, Наконец разделить фактическое количество многоточия (на основании вашего разрешения) размером в дюймах: X = 1680/18.66 ~ 90dpi
; Y = 1050/11.65 ~ 90dpi
, Так что мой реальный dpi - 90.
Имейте в виду, что ручной метод измерения может быть более точным, чем вывод команды, xrandr | grep -w connected
потому что более новые версии X-сервера игнорируют размер, сообщаемый EDID, и рассчитывают размер, используя разрешение экрана и жестко заданное значение DPI (дополнительная информация здесь ).
Другой способ найти размер монитора - это напрямую прочитать его EDID. Установите read-edid
пакет и выполните команду sudo get-edid | parse-edid | grep DisplaySize
в терминале. Его вывод даст вам фактический размер вашего монитора в миллиметрах. Если нет - используйте линейку.
Давайте начнем исправлять DPI:
1) В 12.04 запустить gksudo gedit
, открыть /etc/lightdm/lightdm.conf
и добавить параметр в [SeatDefaults]
разделе:
xserver-command=X -dpi 90
По умолчанию в 16.04 такого файла нет, поэтому вы должны создать его lightdm.conf
вручную и поместить в него /etc/lightdm/lightdm.conf.d/
. Содержимое этого файла одинаково:
[SeatDefaults]
xserver-command=X -dpi 90
Перезагрузите компьютер или перезагрузите X. Теперь grep DPI /var/log/Xorg.0.log
покажет желаемую настройку.
2) В моем предыдущем ответе я предложил создать файл, /etc/X11/Xsession.d/
содержащий строку xrandr --dpi 90
. Это работало в 12.04, но в 16.04 этот параметр не является постоянным. В более новых системах мы можем добавить желаемое значение при запуске сеанса. Запустите «Автозагрузка приложений», нажмите кнопку «Добавить», назовите ее «Fix DPI» и установите команду xrandr --dpi 90
в поле. Сохраните изменения и войдите снова. Сейчас xdpyinfo | grep dots
сообщу 90x90 dots
.
Если xdpyinfo
все еще показывает 96, то добавьте тайм-аут перед запуском xrandr
. Отредактируйте команду в «Автозагрузке приложений» и измените ее на:
bash -c "sleep 15; xrandr --dpi 90"
Ссылка
Шаг 2 не является обязательным для 12.04 , поскольку в старых системах Шаг 1 исправляет как Xorg.0.log
и xdpyinfo
значения.
3) В GNOME3 DPI настройка жестко задана на 96 и не может быть изменена напрямую, но вместо этого можно масштабировать текст. Рассчитаем нужный множитель: desired_DPI / 96
(в моем случае 90/96 = 0.9375
). Теперь запустите команду (или используйте, dconf
если хотите):
gsettings set org.gnome.desktop.interface text-scaling-factor 0.9375
Изменения будут применены сразу. xrdb -query | grep dpi
сообщит о желаемом Xft.dpi: 90
.
PS Есть еще один способ исправить настройку DPI, который намного сложнее и описан в этом руководстве. Я попробовал это также, и результат был тем же самым (по крайней мере в 12.04).
Послесловие: Только разработчики Ubuntu могут с уверенностью сказать, действительно ли значения, измененные в соответствии с шагами 1 и 2, действительно имеют значение в современной Ubuntu, или они молча игнорируются. Только Шаг 3 производит изменения, которые мгновенно заметны. Тем пользователям, которые считают, что определенные приложения могут по-прежнему полагаться на настройки X-сервера, рекомендуется выполнить все 3 шага, описанных выше. В остальном достаточно шага 3 - это единственный способ настройки, принятый в современных дистрибутивах Ubuntu.