Я использую Ubuntu 12.04.3 с драйверами NVidia (319) для моей графической карты Quadro K2100M, и когда я переключаю свой основной экран ноутбука 3200x1800 в режим 1920x1080 (используя nvidia-settings
), дисплей становится размытым ...
Я использую два экрана:
Основная проблема в том, что в Ubuntu шрифт слишком мал на экране моего ноутбука. Из-за этого я хотел изменить разрешение своего ноутбука на 1920x1080.
Читая ответ Галгалеша , я попытался вычислить свой DPI , и вот конфигурация DPI, которую я должен иметь:
Есть ли способ получить разрешение с двумя DPI с расширенным рабочим столом?
Похоже, что люди все еще пытаются работать с несколькими мониторами и дисплеями HiDPI. Хороший обходной путь описан в Arch wiki https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays . Итак, у меня есть:
Теперь я использую Ubuntu 14.10 и GNOME Shell 3.12.2 с довольно удобной поддержкой HiDPI. Поэтому я просто использую готовую поддержку HiDPI - коэффициент масштабирования равен 2 (его можно настроить через графический интерфейс). Это означает, что на внешнем мониторе у меня все получается вдвое больше допустимого. Таким образом, я использую xrandr; но вместо уменьшения масштаба экрана ноутбука я увеличиваю масштаб экрана внешнего монитора:
xrandr --output HDMI1 --scale 2x2 --mode 1920x1200 --fb 3840x4200 --pos 0x0
xrandr --output eDP1 --scale 1x1 --pos 320x2400
Итак, один за другим:
- выход HDMI1
в моем случае это внешний экран, eDP1
- ноутбук экран. - масштаб 2x2
- сделать все на внешнем экране вдвое меньше - режим XxY
- явно установить разрешение экрана (не требуется, если он уже установлен) - fb XxY
- установить размер виртуального экрана (фреймбуфер) ( важно без этого вы сможете использовать только четвертую часть экран). В моем случае один экран был поверх другого, поэтому я сложил эффективные высоты 2400 + 1800 = 4200. Также обратите внимание, что максимальный размер буфера кадра может быть указан в xorg.conf - тогда вы не можете его превышать (это записано в первой строке вывода xrandr -q
). - pos XxY
] - в моем случае я установил абсолютное позиционирование экранов, поэтому экран моего ноутбука находится прямо в нижней части внешнего экрана. Значение Y в два раза больше высоты внешнего монитора. Вот и все! Все настолько четкое, насколько могло быть.
К вашему сведению: чтобы получить имена экранов и доступные разрешения, можно запустить xrandr --current
.
Более подробную информацию о настройке разрешения можно найти здесь: https://wiki.ubuntu.com/X/Config/Resolution .
ОБНОВЛЕНИЕ - ВАРИАНТ 2: еще один интересный обходной путь для приложений, поддерживающих GTK3 . Если я обычно использую только одно приложение на большом экране (например, некоторую IDE, например, leksah), я не изменяю размер экрана, а запускаю приложение с масштабированием до исходного размера
env GDK_SCALE=0.5 GDK_DPI_SCALE=0.5 CLUTTER_SCALE=0.5 appname
На вашем экране всегда отображается 3200x1800 пикселей. Если вы снижаете разрешение экрана на вашем компьютере, это означает, что ваш экран должен масштабировать изображение, чтобы соответствовать вашему экрану. В зависимости от соотношения между собственным разрешением и текущим разрешением это масштабирование приведет к размытости изображения.
Дополнительную информацию о масштабировании и собственном разрешении можно найти здесь: https://en.wikipedia.org/wiki/Native_resolution
Если текст слишком маленький, у вас есть два варианта:
Как найти и изменить экран DPI? (ответ @whtyger)
Я использовал решение artmem, но столкнулся с проблемой мыши, упомянутой в EoghanM. Обходной путь, который я нашел в старом баг-репортаже, связанном с --panning.
I'm shooting for: - DP1-2 3840x2160 в родном DIP. - eDP1 1366x768, масштабируется, чтобы выглядеть разумно справа от DP1-2.
Я получаю это, имея буфер кадра, который похож на DP1-2 + (2x eDP1), затем я масштабирую все, что идет к eDP1 на 1/2.
Это должно быть просто, но xrandr немного хитрый.
Здесь -масштаб используется, чтобы уменьшить все, что идет к eDP1 на 1/2. -панирование такое же, как и eDP1 в исходном буфере кадра с позицией (+3840+0) справа от DP1-2. +0+2160 было бы ниже.
xrandr -d :0 --fb 6572x3696 --output DP1-2 --mode 3840x2160 --scale 1x1 --rate 60 --pos 0x0 --primary
# sometimes panning get applied incorrectly when switching from some other mode, running it twice is a work around
xrandr -d :0 --output eDP1 --off
xrandr -d :0 --fb 6572x3696 --output eDP1 --mode 1366x768 --scale 2x2 --panning 2732x1536+3840+0
xrandr -d :0 --fb 6572x3696 --output eDP1 --mode 1366x768 --scale 2x2 --panning 2732x1536+3840+0
Я также установил Xft.dpi на 185
$ cat ~/.Xresources
Xft.dpi: 185
Когда я отключаю питание от внешнего монитора, я запускаю :
xrandr -d :0 --output DP1-2 --off
xrandr -d :0 --fb 2732x1536 --output eDP1 --mode 1366x768 --scale 2x2 --panning 2732x1536+0+0 --pos 0x0 --primary
Это выглядит не очень хорошо, но я не очень далеко от своего рабочего стола. Вы можете обойти это, изменив Xft.dpi и перезапустив все свои настольные программы. Я не знаю, как изменить Xft.dpi и затем заставить клиентов использовать его без перезапуска.
Мне удалось решить эту проблему (с проблемами), используя детали, описанные в следующем обсуждении на github: https://github.com/linuxmint/Cinnamon/issues/3606
Внешний монитор QHD (2560X1440) , Внутренний монитор / монитор ноутбука 3200x1800
xrandr --output eDP-1 --scale 1x1 --pos 0x2880
xrandr --output DP-1 --mode 2560x1440 --scale 2x2 --fb 5120x4680
ИЛИ
Внешний монитор FHD (1920x1080), Внутренний монитор / монитор ноутбука 3200x1800
xrandr --output eDP-1 --scale 1x1 --pos 0x2160
xrandr --output DP-1 --mode 1920x1080 --scale 2x2 --fb 3840x3960
Они работают, но при перемещении на мониторе высокого разрешения (портативном компьютере) возникает значительный разрыв окна, изменить размер экранов или прокрутить в браузере. Это похоже на решение для рендеринга программного обеспечения (которое имеет все эти проблемы с разрывом и медленным обновлением).
Linux / Gnome 2017 года требует решения для многомониторного смешанного масштабирования. И в Windows 10, и в OS X эта проблема решена без необходимости прибегать к исправлениям из командной строки, которые частично работают (проблема разрывов недопустима для игр)
Dawn it-tweġibiet huma kollha kbar, u għenuni qabel, iżda
sudo apt-get upgrade
reċenti ħassar ir-randr-config tiegħi! Waqt li ppruvajt nirrestawra l-issettjar tiegħi sibt li ma stajtx inġib iktar il-maws lil hinn mill-aqwa kwadrant 1/4 tat-tieni skrin, irrispettivament mill-input --fb. Minn https://wiki.archlinux.org/index.php/HiDPI#Side_display Eventwalment skoprejt li ż-żieda tal-panning għamlet l-iskuża. Ukoll, l-użu ta '' --right-of 'jew' --left-of 'huwa aktar sempliċi minn' --pos '.
"Ġenerikament jekk il-monitor HiDPI tiegħek (laptop) huwa pixels AxB u l-monitor regolari tiegħek (estern) huwa CxD u qed tiskala minn [ExF], il-linja tal-kmand għad-dritt tal-lemin hija: "
xrandr --output eDP-1 --auto --output HDMI-1 --auto --panning [C*E]x[D*F]+[A]+0 --scale [E]x[F] --right-of eDP-1
У меня есть устаревший монитор 1024x768, подключенный к (менее устаревшему) ноутбуку.
.
Окна, выводимые в совершенно разных размерах, намного больше во внешнем мониторе (который имеет более старый, больший шаг точек)
.
Я нашел команду для масштабирования монитора:
xrandr --output VGA-1 --scale 1.5x1.5
VGA-1 - это внутреннее имя монитора, которое было найдено при выполнении следующей команды:
xrandr --current | grep connected
В результате старый монитор теперь отображает свое содержимое почти в том же размере, что и ноутбук.
Любопытно, что он работает с масштабированием х1,5, но не 1,45, дисплей (в моем случае) становится черным.
Когда я прогонял комментарий к масштабированию в первый раз, результат был пугающим, так как содержимое обоих экранов перекрывалось. Например, указатель курсора появился дважды.
Я запустил программу:
arandr &
для установки относительных позиций экрана, чтобы исправить это.
Он работает так же, как и Настройки > Устройства > Отображает .
Я установил его с:
sudo apt-get install arandr
Спасибо @LuisAlvarado и другим за то, что поделились своими знаниями!
Первый запуск $ xrandr
для отображения всех выходных данных
Screen 0: minimum 320 x 200, current 7680 x 2160, maximum 8192 x 8192
eDP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
3840x2160 60.00*+ 59.98 59.97
3200x1800 59.96 59.94
2880x1620 59.96 59.97
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 connected 3840x2160+3840+0 (normal left inverted right x axis y axis) 521mm x 294mm
1920x1080 60.00*+ 50.00 59.94
1920x1080i 60.00 50.00 59.94
1680x1050 59.88
1280x1024 75.02 60.02
Как вы можете видеть в этом случае второй монитор подключается к DP-3
Затем вы можете перепродать дисплей:
$ xrandr --output DP-3 --auto --scale 2x2
У меня была аналогичная проблема, и я решил ее таким образом.
У меня есть внешний большой экран 24 дюйма 3840x2160 и ноутбук такое же разрешение 3840x2160, но маленький экран 15,4 дюйма
Я хотел, чтобы экран ноутбука был увеличен, потому что масштабирование по умолчанию слишком мало ..
Уменьшение масштаба с помощью xrandr, поскольку мы обычно видим результаты в размытом экране, решение состоит в том, чтобы масштабировать все вверх с помощью xrandr используйте коэффициент масштабирования gnome:
Вот как это сделать (внешний экран поверх экрана ноутбука, но вы можете расположить его по-другому, если измените параметры pos)
xrandr --output DP-0 --primary --mode 3840x2160 --pos 0x0 --scale 2x2 --rotate normal --output DP-2 --mode 3840x2160 --pos 0x4320 --scale 1x1 --rotate normal --output DP-1 --off
Пояснения:
--output : DP-1 is the external screen, DP-2 is the laptop screen (use xrandr -q to get your devices names)
--mode : both screen have same definitions 3840x2160
--scale 2x2 for external, 1x1 for laptop, this is "relative" to the primary which is external screen here..
--pos : external screen is at position 0x0, laptop screen is bellow at pos 0x(2160*2)=0x4320 because external screen is scalled by 2
Затем
gsettings set org.gnome.desktop.interface scaling-factor 2
ИЛИ
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gdk/WindowScalingFactor': <2>}"
Я трачу часы на решение этой проблемы. У меня ноутбук 4k и внешний монитор 1080p. Если я установил масштабирование на «200%», внешние мониторы отображали увеличенный текст значков и т. Д.
Я пробовал команды xrandr с «--scale», но они не дали мне ожидаемых результатов. Итак, у меня есть команда xrandr, которая отлично работает для меня. Я хочу, чтобы кто-то еще нашел ее полезной.
xrandr --output HDMI-1-1 --mode 1920x1080 --pos 0x0 --rate 60.00 --transform 2,0,0,0,2,0,0,0,1 --output eDP-1-1 --mode 3840x2160 --pos 0x2160 --primary --rate 60.00
Эта команда работает как внешний монитор с масштабированием до «100%» и встроенным экраном с масштабированием до «200%». Эта команда помещает внешний монитор над встроенным. Имейте в виду, что вы, вероятно, измените имена --output на свои.
Обратите внимание, что 2160
в - pos 0x2160
не имеет ничего общего с высотой eDP-1-1 (в моем случае это просто случайно). Фактически это число является высотой верхнего монитора ( 1080
в моем случае), исправленной преобразованием (так 1080 * 2
в моем случае).
Это потому, что - pos
относится к положению верхнего левого угла в пространстве виртуального экрана , поэтому нижний экран должен быть расположен относительно высоты верхнего экрана.
Наконец, , вы можете игнорировать флаги --rate. Самый важный флаг здесь - - transform
. А положение зависит от разрешения экрана и размещения. Используя эти команды, у меня есть предварительный просмотр Arandr, подобный этому:
монитор 1080p виртуально настраивается, чтобы занимать вдвое больше места. Благодаря идеально выровненным мониторам, когда я перемещаю мышь с одного экрана на другой, она появляется в одной и той же горизонтальной координате
Я создал сценарий для автоматизации вычислений в anwser artem:
#!/usr/bin/env bash
# usage:
# ./script.sh 8 # to set scale 1.8
Y1=1440
X2=1680
Y2=1050
xrandr --output HDMI2 --scale 1.$1x1.$1 --fb $(($X2 * 1$1 / 10))x$(($Y1 + $Y2 * 1$1 / 10)) --pos 0x0
xrandr --output eDP1 --scale 1x1 --pos 0x$(($Y2 * 1$1 / 10))
Это уродливо, потому что bash не поддерживает операции с числами с плавающей запятой, но он работает.
Я попробовал все вышеперечисленное, и, похоже, ничего не работает безупречно. В конце концов, я просто поместил две терминальные записи в свое меню Fluxbox.Один для дисплея с высоким разрешением, другой для низкого разрешения.
[exec] (Terminal 9pt) { xterm -fa Hack:size=9 } <>
[exec] (Terminal 12pt) { xterm -fa Hack:size=12 } <>
В Ubuntu 20.04 я все решил, щелкнув Дробное масштабирование
в нижней части настроек экрана. Это позволит масштабировать каждый монитор отдельно.