У меня есть два монитора, установленных на моем настольном ПК под управлением Ubuntu 18.04 с видеокартой NVIDIA GTX 960. Я использую проприетарные драйверы NVIDIA.
Сначала я открываю nvidia-settings
и настраиваю мониторы так, чтобы они располагались, как показано ниже.
Затем я создаю новый файл /etc/X11/xorg.conf
с помощью кнопки «Сохранить в X Configuration». Результирующий /etc/X11/xorg.conf
показан ниже.
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 410.79
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
EndSection
Section "Files"
EndSection
Section "Module"
Load "dbe"
Load "extmod"
Load "type1"
Load "freetype"
Load "glx"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "DELL U2414H"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 960"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "DFP-0"
Option "metamodes" "DP-4: nvidia-auto-select +1920+0 {rotation=left}, DVI-I-1: nvidia-auto-select +0+840"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
После перезагрузки правый монитор больше не поворачивается, как указано в настройках nvidia.
В случае необходимости левый монитор подключается через DVI-I (DVI-I-1), а правый монитор подключается через DisplayPort (DP-4).
Что я пробовал
Сначала я проверил, существует ли файл /usr/share/X11/xorg.conf
, который, как мне кажется, будет иметь приоритет над / etc / X11 / xorg.conf
. /usr/share/X11/xorg.conf
не существует.
Затем я попытался полностью удалить /etc/X11/xorg.conf
, а затем воссоздать его с помощью инструмента nvidia-settings. Такое же поведение, как и раньше.
Если я удалю файл /etc/X11/xorg.conf
, то места монитора поменяются местами, что указывает на то, что конфигурация загружается, поскольку поведение отличается, когда файл xorg.conf nvidia-settings настоящее время.
(Nuclear Option) Я также попытался установить свежую копию Ubuntu 18.04 на дополнительный внутренний жесткий диск. Такое же поведение, как и раньше.
Кто-нибудь знает, почему это происходит? Довольно неприятно менять ротацию монитора каждый раз, когда я запускаю систему.
В вашем случае с вашими мониторами с именем DVI -I-1
и DP-4
временным решением будет установка следующей команды в качестве запускаемого приложения:
xrandr --output DP-4 --rotate right --pos 1920x0 --output DVI-I-1 --pos 0x840
Однако я не нахожу это решение удовлетворительным, так как оно должно обрабатываться драйверами Ubuntu и/или Nvidia, чтобы конфигурация была сразу правильной при запуске, а не в ожидании этой команды. бежать.
Для тех, у кого возникла та же проблема: два монитора с одинаковым разрешением Hres
x Vres
, левый монитор по горизонтали, а правый по вертикали:
Найдите названия своих мониторов. с:
xrandr | grep "connected"
Теперь предположим, что они называются Mon1
и Mon2
(замените своими именами в последующих командах).
Рассчитайте вертикальное положение Vpos
, определяемое как расстояние между верхним краем горизонтального монитора и верхним краем вертикального монитора. Вы можете видеть ниже, что это определено таким образом, потому что начало координат находится вверху слева.Если вы знаете только вертикальный сдвиг Vshift
снизу, вы можете легко вычислить Vpos
следующим образом:
Vpos = Vres - Hres - Vshift
0 Hres Hres + Vres
0 -------------------
| |
| |
| |
| Mon2 |
Vpos -----------------------| |
| | Vres x Hres |
| | |
| Mon1 | |
| | |
| Hres x Vres | |
| | |
Vpos+Hres -----------------------| |
^ | |
Vshift | | |
Vres v -------------------
для «запуска» в поиске Ubuntu) с помощью приведенной ниже команды (замените mon1
и mon2
на имена ваших мониторов, Hres
на разрешение вашего монитора по горизонтали и Vpos
с числом, которое вы вычислили на шаге 2):
xrandr --output mon2 --rotate right --pos Hresx0 --output mon1 --pos 0xVpos
Вы должны легко обобщать на мониторы с разным разрешением или с разной ориентацией.