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

Вопрос или проблема

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

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

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

Это обновленная версия моего предыдущего ответа, который был связан с Ubuntu 12.04. В версии 16.04 (Xenial) необходимо три шага, чтобы правильно установить DPI вместо двух.

Я объясню на примере системы с Ubuntu 12.04 с Gnome Classic и монитором с разрешением 1680×1050. Мои начальные настройки: 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.

P.S. Существует еще один метод исправления настройки 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:

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

Была аналогичная проблема на экране 2880×1620.
См. http://ubuntuforums.org/showthread.php?t=2106549
Решено путем добавления

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

в мой ~/.xprofile

Вместо “DP-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 dpi.
Похоже, что веб-браузеры, такие как Firefox и Chromium, не замечают этой настройки, но в каждом из них вы можете задать минимальный размер шрифта в их настройках приложения, чтобы масштабировать шрифты на веб-страницах таким же образом.

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

Откройте его и перейдите в “Настройки > Шрифты”. Затем измените “Коэффициент масштабирования текста”

Отлично работает. Удачи.

В Ubuntu 14.10, с ноутбуком 15 дюймов, разрешение 1920×1080 (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    # В миллиметрах
EndSection

Это устанавливает системные настройки dpi на правильные 143dpi:

$ xdpyinfo | grep dots
разрешение:    142x142 dots per inch

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

  • Системные настройки (в панели Unity) -> Дисплеи -> Масштабирование для меню и панелей заголовков: 1.25
  • В chromium, я запускаю с: chromium-browser –enable_hidpi=1
  • В Firefox я устанавливаю в about: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

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

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

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

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, однако большинство программ предполагает ppi 72 dpi по историческим причинам, хотя теперь не редкость 96 dpi.

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

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

Если у вас был бы настоящий монитор 1024×768 пикселей (разрешение) и он был бы истинного 72 dpi, это был бы монитор около 17 дюймов. Если вы установите размер шрифта на 72, тогда символ будет высотой в 1 дюйм. Если вы установите дисплей на разрешение 800×600, то шрифт будет крупнее, в то время как установка 1600×1200 сделает шрифт меньше.

.

Ответ или решение

Как найти и изменить настройку DPI экрана в Ubuntu 12.04 и 12.10

Если вы хотите изменить настройку DPI (dots per inch) на вашем экране в дистрибутивах Ubuntu 12.04 и 12.10, это руководство поможет вам разобраться с этим вопросом. Мы обсудим, как узнать текущие настройки DPI и изменить их, используя командную строку и конфигурационные файлы, что актуально для систем этих версий.

Что такое DPI и почему это важно?

DPI экран – это мера плотности пикселей на дюйм, и эта настройка может повлиять на четкость и размер отображаемых объектов, таких как тексты и иконки. Изменение DPI позволяет адаптировать визуальную среду под нужды пользователя, делая её более удобной для восприятия.

Шаг 1: Определение текущих настроек DPI

  1. Использование команды xdpyinfo:

    Откройте терминал и введите следующую команду:

    xdpyinfo | grep dots

    Эта команда покажет текущее значение DPI, например, 96x96 dots.

  2. Дополнительные команды для проверки DPI:

    • Команда xrdb -query | grep dpi может показать значение Xft.dpi, то есть плотность шрифтов.
    • Команда grep DPI /var/log/Xorg.0.log может раскрыть другие конфигурации DPI, заданные драйверами.

Шаг 2: Расчет оптимального DPI

Чтобы рассчитать более точное значение DPI, вам нужно знать физические размеры экрана и его разрешение:

  1. Определение размеров экрана:

    Используйте команду:

    xrandr | grep -w connected

    Это даст размер экрана в миллиметрах. Чтобы более точно измерить экран, можно воспользоваться линейкой.

  2. Расчёт DPI:

    Переведите физические размеры в дюймы (разделите на 2.54) и используйте разрешение экрана для расчета:

    DPI по ширине = ширина в пикселях / ширина в дюймах
    DPI по высоте = высота в пикселях / высота в дюймах

    Например, для экрана с разрешением 1680×1050 и физическими размерами 47.4×29.6 см, DPI будет примерно 90.

Шаг 3: Изменение настроек DPI

  1. Изменение конфигурации X Server:

    Для Ubuntu 12.04:

    Отредактируйте файл /etc/lightdm/lightdm.conf, добавив строку под [SeatDefaults]:

    xserver-command=X -dpi 90

    Для Ubuntu 16.04 и новее создайте файл со следующим содержимым в /etc/lightdm/lightdm.conf.d/:

    [SeatDefaults]
    xserver-command=X -dpi 90
  2. Использование xrandr:

    Для получения временного эффекта до перезагрузки системы, добавьте строку в "Startup Applications":

    xrandr --dpi 90

    Если не помогает, добавьте задержку:

    bash -c "sleep 15; xrandr --dpi 90"
  3. Настройка масштабирования текста в GNOME3:

    Используйте команду для изменения масштабирования текста:

    gsettings set org.gnome.desktop.interface text-scaling-factor 0.9375

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

Оцените материал
Добавить комментарий

Капча загружается...