Це оновлена версія моєї попередньої відповіді, яка стосувалася Ubuntu 12.04. У 16.04 (Xenial) для правильного встановлення DPI замість 2 потрібно 3 кроки.
Я поясню на прикладі системи з 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 цей параметр не зберігається. У нових системах ми можемо додати бажане значення при запуску сеансу. Запустіть "Запуск програм", натисніть кнопку "Додати", назвіть її "Виправити 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.