if ($answer_counter == 1): ?>
endif; ?>
Это обновленная версия моего предыдущего ответа, которая была связана с 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 выходы всех этих трех команд были согласованными и равными 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 и amp; 2 действительно имеют значение в современном Ubuntu, или они молча игнорируются. Только шаг 3 производит изменения, которые мгновенно заметны. Те пользователи, которые считают, что некоторые приложения могут по-прежнему полагаться на настройки X-сервера, рекомендуется выполнить все 3 шага, описанные выше. Для остальных шаг 3 достаточно - это единственный способ настройки, принятый в современных дистрибутивах Ubuntu.