Как найти и изменить DPI экрана?
Я пытаюсь найти, а затем изменить настройку разрешения экрана (точек на дюйм) в 12.04 и 12.10. Тем не менее, я не могу найти приложение или файл конфигурации, который может сделать это. Для этого есть какое-нибудь приложение или файл conf?
Обратите внимание, что это для 12.04+, поэтому следующее не будет работать:
- Как изменить настройки шрифта DPI?
- Как изменить DPI экрана в 11.10?
- Можно ли изменить шрифт DPI в 11.04?
Более того, они в основном меняют размер шрифта, а не фактическое разрешение экрана.
11 ответов
Это обновленная версия моего предыдущего ответа, который был связан с 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.
Начиная с 14.04, у нас есть опция, которая немного помогает:
Поддержка масштабирования
На рисунке ниже мы видим масштабирование 0,75 на шрифтах и заголовках:
На изображении ниже мы видим масштабирование в 1,38 на шрифтах и заголовках:
Что касается моего опыта работы с Ubuntu, то изменение настройки DPI шрифта меняет намного больше, чем просто способ отображения шрифтов. Это также относится к значкам и размеру меню, например.
Просто Xorg намекает на среду рабочего стола о том, что такое DPI физического дисплея. И да, вы можете переопределить это в Xorg.conf, но это имеет тот же эффект, что и изменение настроек в вашей DE. Например, в Kubuntu/KDE:
Была похожая проблема, на экране 2880x1620. См. Http://ubuntuforums.org/showthread.php?t=2106549.
xrandr --output DP-0 --scale 0.75x0.75
в мой ~/.xprofile
Вместо "ДП-0" ставьте все
xrandr
говорит как имя устройства.
Можно, конечно, настроить масштаб, но 0,5 как-то не очень хорошо смотрелось на моем экране.
В то время как 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 точек на дюйм. Похоже, что веб-браузеры, такие как Firefox и Chromium, не замечают этот параметр, но каждый из них, Firefox и Chromium, позволяет вам устанавливать минимальный размер шрифта в настройках приложения для одинакового масштабирования шрифтов на веб-страницах.
Установите Ubuntu-Tweak http://ubuntu-tweak.com/
Откройте его и перейдите к "Tweaks > Fonts". Затем измените "Коэффициент масштабирования текста"
Работает отлично. Наслаждаться.
В Ubuntu 14.10 с 15-дюймовым ноутбуком с разрешением 1920x1080 (345 мм x 145 мм) и плотностью 143ppi/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 на 143dpi:
$ 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 года.
Вы можете найти свой DPI с помощью этой команды:
xrdb -query | grep dpi
Вы можете установить свой DPI, создав файл ~/.Xresources с этим содержимым:
Xft.dpi: 96
Замените 96 желаемым DPI.
Вы можете масштабировать все с помощью 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
Панель запуска и панель могут на мгновение исчезнуть, но просто наведите на них курсор, и они должны появиться снова. Возможно, вам также придется изменить размеры любых открытых окон, чтобы они соответствовали меньшему разрешению.
Когда я закончил с этим вопросом в поисках масштабирования Windows HiDPI в Ubuntu Gnome, вот мое дополнение к случайным предложениям, так что я найду его, когда мне это снова понадобится.:)
Чтобы получить доступ к этому диалоговому окну, откройте Gnome Tweaks и перейдите в раздел Windows.
Я использую 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
На самом деле вы не можете изменить физическое число точек на дюйм вашего монитора. Настоящий ppi - это фактический аппаратный ppi, однако по историческим причинам большая часть программного обеспечения будет принимать ppi 72dpi, хотя сейчас 96 dpi не редкость.
Вы можете изменить разрешение монитора, которое изменяет переведенный ppi, и вы можете изменить такие вещи, как размер шрифта.
Если вы установите MyUnity, вы можете изменить шрифт DPI, помимо прочего.
Если бы у вас был монитор с разрешением 1024x768 пикселей и разрешением 72dpi, он был бы примерно 17-дюймовым монитором. Если вы установите размер шрифта 72, символ будет иметь высоту 1". Если вы установите разрешение экрана 800x600, шрифт будет больше, а при настройке 1600x1200 шрифт будет меньше.