Як знайти та змінити DPI на екрані?


87

Я намагаюся знайти, а потім змінити налаштування DPI на екрані (крапки на дюйм) у 12.04 та 12.10. Однак, здається, я не можу знайти жодного додатка чи конфігураційного файлу, який міг би це зробити. Чи є для цього якийсь додаток або конф-файл?

Зауважте, що це для 12.04+, тому наступне не працюватиме:

Більше того, вони в основному змінюють розмір шрифту, а не фактичний DPI екрана.


1
Я намагаюся тренуватися, як мати різні dpi, на кожному моніторі.
ctrl-alt-delor

1
Привіт @richard, якщо ви це зробите, ми хотіли б, щоб ви поставили свої кроки та результати тут. Дякую.
Луїс Альварадо

Відповіді:


117

Це оновлена ​​версія моєї попередньої відповіді, яка стосувалася 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.


2
Це дуже повна (сподобалася вся справа) відповідь, повна нової інформації. Спасибі whtyger. +1
Луїс Альварадо

2
Дякую за високу оцінку. Я кілька днів копав всюди, щоб вирішити проблему, і тепер радий поділитися цим з усіма.
whtyger

1
Ось електронна таблиця, щоб заощадити трохи часу на обчислення значень: docs.google.com/spreadsheet/…
Tom Carchrae


1
@RaffiKhatchadourian У ньому є схема org.gnome.desktop.interfaceі ключ scaling-factor. Значення за замовчуванням дорівнює 1, і воно може бути лише цілим числом. Він призначений для дисплеїв HiDPI. Існує декілька методів отримання нецілого коефіцієнта масштабування з використанням xrandr. Перевірте це посилання: wiki.archlinux.org/index.php/HiDPI (це база знань Arch, не перевіряла цього в Ubuntu).
whtyger

28

Починаючи з 14.04, у нас є варіант, який трохи допомагає:

Підтримка масштабування

На зображенні нижче ми бачимо масштабування його на 0,75 на шрифтах та заголовках:

введіть тут опис зображення

На зображенні нижче ми бачимо масштабування його на рівні 1,38 на шрифтах та заголовках:

введіть тут опис зображення


3
Це працювало для мене в Ubuntu 14.04 (німецька: "Anzeigegeräte") Я повинен був відновити коефіцієнт масштабування шрифту за замовчуванням до 1,0 (я встановив його на 2,0 раніше) і змінити масштаб розміру значка запуску в "Усі налаштування" -> "Darstellung "
rubo77

4
Чи це не змінює лише рядки меню та заголовка, включаючи Launcher, а НЕ загальну DPI?
Джон Скотт

1
@FuzzyToothpaste, тому я сказав "трохи допомагає". Цей біт полягає в тому, що при зниженні шкали, крім зміни меню, рядка заголовка та піктограм запуску, розмір актуального вікна через зміни буде меншим. Тож це трохи допомагає, якщо у вас є, наприклад, роздільна здатність 1280x720 (наприклад, ноутбук), і ви хочете помістити вікна всередині цієї 720. Якщо знизити шкалу до 0,8 або менше, ви відчуєте, що використовуєте 1080 замість 720. Це Звичайно, з Non Hi-DPI, як яблучні продукти. Я здогадуюсь, ефект буде більшим для цього типу обладнання.
Луїс Альварадо

Привіт, вибачте за мій коментар; Я хочу відобразити параметри відображення як на ваших фотографіях через сеанс xserver: чи є спосіб це зробити?

9

Що стосується мого досвіду роботи в Ubuntu, зміна налаштування DPI шрифту змінюється набагато більше, ніж просто спосіб відображення шрифтів. Це стосується, наприклад, значків та розміру меню.

Просто Xorg натякає робочому середовищу на те, що таке фізичний показник фізичного дисплея. І так, ви можете змінити це в Xorg.conf, але це має такий же ефект, як і зміна налаштувань у вашому DE. Наприклад у Kubuntu / KDE:

введіть тут опис зображення


3
Чи є Ubuntu (Unity) версія цього менеджера шрифтів.
Луїс Альварадо

@LuisAlvarado Ні, здається, що це лише GNOME2 та KDE, що пропонують це ... Gnome-tweak-tool повинен бути в змозі це зробити, але він вибиває мій 12.10 Unity VM кожного разу, коли змінюється розмір шрифту.
gertvdijk

9

Мав подібну проблему на екрані 2880x1620. Дивіться сторінку http://ubuntuforums.org/showthread.php?t=2106549 Розв’язати, поставивши

xrandr --output DP-0 --scale 0.75x0.75

в мій ~ / .xprofile

Замість "DP-0" поставте що завгодно

xrandr

говорить як назва пристрою.

Можна налаштувати масштаб звичайно, але 0,5 якось не виглядало приємно на моєму екрані.


3
Це я лише вирішення, що втрачає реальну роздільну здатність. За допомогою цього масштабування монітор відображає лише половину пікселя, а не відтворює його у масштабній роздільній здатності
rubo77

1
На жаль, миша не використовує масштаб з тією ж швидкістю, що і екран, коли використовує це :-( Коли ви зменшуєте масштаб вниз, це нешкідливо, оскільки миша просто досліджує порожній простір поза екраном, але коли масштабує, щоб отримати складну програму для гарного відображення на менших екранах миша не доходить до краю екрану, що робить це непридатним у випадку використання
marsbard

7

Хоча xserver-command=X -dpi ...і xrandr --dpi ...наведене вище, можливо, спрацювало дуже добре в попередніх версіях Ubuntu, в Ubuntu 13.10 (це те, що у мене є) Unity ігнорує ці налаштування і тримає dpi фіксованою (що стосується X-сервера на 96 dpi).

І xrandr --scale ...команда масштабує екран, як описано, але масштабує його таким чином, що робить текст і піктограми трохи розмитими. Але це працює.

Здається, що в Ubuntu 13.10 найкращим варіантом може бути не намагатися змінити налаштування dpi для сервера X, а замість цього використовувати unity-tweak-toolдля зміни шрифтів за замовчуванням, використовуваних Unity, та коефіцієнта масштабування шрифту за замовчуванням. Ви можете завантажити програму unity-tweak-toolз програмного центру Ubuntu. Коли ви відкриєтеunity-tweak-toolперейдіть до кнопки Шрифти і спробуйте змінити коефіцієнт масштабування шрифту на 1,2 або 1,25 (або вище або нижче), щоб шрифти виглядали для вас хорошим розміром. На цій панелі керування ви також можете змінити шрифти за замовчуванням, які використовує Unity. Справді, це рішення не масштабує все на екрані, лише текст, але воно працює дуже добре на моєму ноутбуці з його екраном 166 dpi. Здається, веб-браузери, такі як Firefox та Chromium, не помічають цього налаштування, але кожен Firefox і Chromium дозволяють вам встановити мінімальний розмір шрифту в налаштуваннях програми, щоб масштабувати шрифти на веб-сторінках таким же чином.


Гарне дослідження Карл.
Луїс Альварадо

5

У Ubuntu 14.10, з 15-дюймовим ноутбуком, роздільною здатністю 1920х1080 (345 мм x 145 мм), щільністю 143 пілонів / точок на дюйм, я зробив наступні дії.

У /etc/X11/xorg.conf.d/xorg.conf я додав наступні дії:

# xdpyinfo | grep -B2 resolution
# https://wiki.archlinux.org/index.php/xorg#Display_size_and_DPI
Section "Monitor"
    Identifier             "<default monitor>"
    DisplaySize             345 195    # In millimeters
EndSection

Це встановлює системні настройки dpi справа 143dpi:

$ xdpyinfo | grep dots
resolution:    142x142 dots per inch

Я також зробив усі вищезгадані твінінг:

  • Налаштування системи (на панелі Unity) -> Дисплеї -> Шкала для рядків меню та заголовків: 1,25
  • У хромі я починаю з: Chrome-браузер --enable_hidpi = 1
  • У Firefox я встановив про: config -> layout.css.devPixelsPerPx: 1.4
  • В atom.io я прокоментував це питання

Дуже багато мені потрібно підправити кожну програму, яку я планую використовувати. Також у веб-переглядачах цей масштаб також призводить до розмитих зображень (піктограм, кнопок на веб-сторінках тощо), оскільки він також збільшується. Я хотів би встановити деяке зображення розміром 1: 1 і 2: 1 одним натисканням кнопки або жестом.

Сподіваюся, він додає корисну інформацію станом на 9 жовтня 2014 року.


Я думаю, що ви можете виправити розмитість, змінивши кратне значення 12. У себе випадок встановіть dpi на 144
Мартін Конечний

+1 за розміщення дати у вашій публікації. Я роблю це іноді, але ти мені нагадуєш, що мені потрібно це робити частіше. (підказка для всіх інших).
WinEunuuchs2Unix

3

Встановити Ubuntu-Tweak http://ubuntu-tweak.com/

Відкрийте його та перейдіть до розділу "Налаштування> Шрифти". Потім змініть "Коефіцієнт масштабування тексту"

Чудово працює. Насолоджуйтесь.


3

Ви можете масштабувати все за допомогою xrandr, що, мабуть, те, що ви шукаєте. Я не впевнений, як це працює всередині, але ефект здається зміною dpi.

Щоб масштабувати свою роздільну здатність, спочатку знайдіть назву вашого дисплея за допомогою xrandr:

lars:~$ xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 1600 x 1600
LVDS connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   1366x768       60.0*+
   1280x768       60.0 +
   1280x720       60.0 +
   1024x768       60.0 +
   1024x600       60.0 +
   800x600        60.0 +
   800x480        60.0 +
   720x480        60.0 +
   640x480        60.0 +
DFP1 disconnected (normal left inverted right x axis y axis)
CRT1 disconnected (normal left inverted right x axis y axis)

Отже, у моєму випадку дисплей мого ноутбука називається LVDS.

Потім виконайте наступне, щоб масштабувати свою роздільну здатність:

xrandr --output LVDS --scale 0.75x0.75

Запуск і панель можуть на мить зникнути, але просто наведіть курсор на них, і вони повинні з’явитися знову. Можливо, вам також доведеться змінити розміри будь-яких відкритих вікон, щоб вони відповідали меншій роздільній здатності.


Це розмиває результат
Бернарда

2

Коли я закінчився цим питанням, шукаючи масштабування Windows HiDPI в Ubuntu Gnome, ось моє доповнення до випадкових пропозицій, так що я знайду його, коли мені знову знадобиться. :)

Для доступу до цього діалогового вікна відкрийте Gnome Tweaks та перейдіть до розділу Windows.

Gnome Tweaks - Windows


0

Я використовую Zorin8 (заснований на Ubuntu13.x).

Ви можете масштабувати екран за допомогою миші (1024/800 = 1,28, 768/600 = 1,28):

xrandr --output LVDS1 --mode 800x600 --panning 1024x768 --scale 1.28x1.28

Або панорамируйте лише екран, тому миші потрібно побачити частини, які не видно на екрані:

xrandr --output LVDS1 --mode 800x600 --panning 1024x768

-2

Насправді ви не можете змінити фізичний ppi монітора. Справжній ppi - це фактичний апаратний ppi, проте більшість програмного забезпечення передбачає 72 dpi з історичних причин, хоча 96 dpi зараз не рідкість.

Ви можете змінити роздільну здатність монітора, яка змінює перекладений ppi, і ви можете змінити такі речі, як розмір шрифту.

Якщо ви встановите MyUnity, ви можете серед іншого змінити шрифт DPI.

Якби у вас був справжній монітор 1024x768 пікселів (роздільна здатність), і це було вірно 72dpi, це було б приблизно 17 "" монітором. Якщо ви встановите шрифт 72, то символ був би 1 ". Якщо встановити дисплей з роздільною здатністю 800х600, тоді шрифт буде більшим, а встановлення 1600х1200 зробить шрифт меншим.


Що щодо параметрів xorg, таких як "UseEDIDDpi" та "DPI"? Я читав, що, наприклад, перший може вимкнути читання EDID з відеокарти, якщо вона неправильно прочитана, і за допомогою DPI ви можете змінити DPI. Це те, що мене бентежить.
Луїс Альварадо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.