Как найти и изменить экран DPI?

87

Я пытаюсь найти, а затем изменить настройку разрешения экрана (точек на дюйм) в 12.04 и 12.10. Тем не менее, я не могу найти приложение или файл конфигурации, который может сделать это. Для этого есть какое-нибудь приложение или файл conf?

Обратите внимание, что это для 12.04+, поэтому следующее не будет работать:

Более того, они в основном меняют размер шрифта, а не фактическое разрешение экрана.

Луис Альварадо
источник
1
Я пытаюсь тренироваться, как иметь разные точки на дюйм на каждом мониторе.
Ctrl-Alt-Delor
1
Привет @ Richard, если вы это сделаете, мы хотели бы, чтобы вы разместили ваши шаги и результаты здесь. Спасибо.
Луис Альварадо

Ответы:

117

Это обновленная версия моего предыдущего ответа, который был связан с 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.

whtyger
источник
2
Это очень полный (Наслаждался всем) ответ, полный новой информации. Спасибо, что. +1
Луис Альварадо
2
Спасибо за высокую оценку. Я потратил несколько дней на то, чтобы найти решение проблемы, и теперь рад поделиться этим со всеми.
whtyger
1
вот таблица , чтобы сэкономить немного времени вычисления значений: docs.google.com/spreadsheet/...
Том 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, как продукты Apple. Я думаю, что эффект будет больше на этих типах оборудования.
Луис Альварадо
Здравствуйте, извините за мой комментарий; Я хочу отобразить настройки отображения, как на ваших изображениях, через сеанс xserver: есть ли способ сделать это?
9

Что касается моего опыта работы с Ubuntu, то изменение настройки DPI шрифта меняет намного больше, чем просто способ отображения шрифтов. Это также относится к значкам и размеру меню, например.

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

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

gertvdijk
источник
3
Существует ли версия этого менеджера шрифтов для Ubuntu (Unity).
Луис Альварадо
@LuisAlvarado Нет, похоже, это только GNOME2 и KDE предлагает это ... Gnome-tweak-tool должен быть в состоянии это сделать, но он вылетает из моей виртуальной машины 12.10 Unity при изменении размера шрифта.
gertvdijk
9

Была похожая проблема, на экране 2880x1620. См http://ubuntuforums.org/showthread.php?t=2106549 решаемые ввода

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

в мой ~ / .xprofile

Вместо «ДП-0» ставьте все

xrandr

говорит как имя устройства.

Можно, конечно, настроить масштаб, но 0,5 как-то не очень хорошо смотрелось на моем экране.

tkruse
источник
3
Это всего лишь обходной путь, потому что вы теряете реальное разрешение. При таком масштабировании ваш монитор отображает только половину пикселя, а не перерисовывает его в масштабированном разрешении
rubo77
1
К сожалению, при использовании этого мышь не масштабируется с той же скоростью, что и экран :-( При уменьшении, как вы, это безвредно, поскольку мышь просто исследует пустое пространство за пределами экрана, но при масштабировании, чтобы сложное приложение хорошо отображалось. на экранах меньшего размера мышь не достигает края экрана, что делает его непригодным для использования в этом случае
марсбард
7

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

И xrandr --scale ...команда действительно масштабирует экран, как описано, но масштабирует его таким образом, что текст и значки становятся немного размытыми. Но это работает.

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

CarlGWatts
источник
Хорошее исследование, Карл.
Луис Альварадо
5

В Ubuntu 14.10 с 15-дюймовым ноутбуком с разрешением 1920x1080 (345 мм x 145 мм) и плотностью 143 ppi / dpi я сделал следующее.

В /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 на 143 dpi:

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

Я также сделал все вышеупомянутые настройки:

  • Системные настройки (на панели Unity) -> Дисплеи -> Масштаб для строки меню и заголовка: 1.25
  • В chromium я начинаю с: chromium-browser --enable_hidpi = 1
  • В Firefox я установил около: config -> layout.css.devPixelsPerPx: 1.4
  • В atom.io я прокомментировал этот вопрос

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

Надеюсь, что это добавляет полезную информацию по состоянию на 9 октября 2014 года.

user12933
источник
Я думаю, что вы можете исправить размытость, масштабируя кратное 12. В вашем случае установите dpi на 144
Martin Konecny
+1 за размещение даты в вашем сообщении. Я делаю это иногда, но вы напоминаете мне, что мне нужно делать это чаще. (подсказка для всех остальных).
WinEunuuchs2Unix
3

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

Откройте его и перейдите к «Tweaks> Fonts». Затем измените «Коэффициент масштабирования текста»

Работает отлично. Наслаждаться.

Royer
источник
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

Панель запуска и панель могут на мгновение исчезнуть, но просто наведите на них курсор, и они должны появиться снова. Возможно, вам также придется изменить размеры любых открытых окон, чтобы они соответствовали меньшему разрешению.

Ларс Нистрем
источник
Это размывает выход
Beernarrd
2

Когда я закончил с этим вопросом в поисках масштабирования Windows HiDPI в Ubuntu Gnome, вот мое дополнение к случайным предложениям, так что я найду его, когда мне это снова понадобится. :)

Чтобы получить доступ к этому диалоговому окну, откройте Gnome Tweaks и перейдите в раздел Windows.

Gnome Tweaks - Windows

andersoyvind
источник
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
DaanP
источник
-2

На самом деле вы не можете изменить физическое число точек на дюйм вашего монитора. Настоящий ppi - это фактический аппаратный ppi, однако по историческим причинам большая часть программного обеспечения будет принимать ppi 72 dpi, хотя сейчас 96 dpi не редкость.

Вы можете изменить разрешение монитора, которое изменяет переведенный ppi, и вы можете изменить такие вещи, как размер шрифта.

Если вы установите MyUnity, вы можете изменить шрифт DPI, помимо прочего.

Если бы у вас был монитор с разрешением 1024x768 пикселей и разрешением 72 dpi, он был бы примерно 17-дюймовым монитором. Если вы установите размер шрифта 72, символ будет иметь высоту 1 ". Если вы установите разрешение экрана 800x600, шрифт будет больше, а при настройке 1600x1200 шрифт будет меньше.

fabricator4
источник
Как насчет параметров xorg, таких как «UseEDIDDpi» и «DPI»? Я читал, что, например, первый может отключить чтение EDID с видеокарты в случае, если он читается неправильно и с DPI вы можете изменить DPI. Это то, что смущает меня.
Луис Альварадо