Внимание! Теперь можно следить за обновлениями, подписавшись на нашу страницу в ВК!

XRandR: настройка режимов работы с дисплеями (мониторами) в GNU/Linux


Дата: 31 марта 2012


XRandR — расширение X сервера, позволяющее производить настройки режимов работы мониторов. Например, можно изменить разрешение, вывести изображение на внешний монитор, повернуть изображение и тому подобное. Утилита часто полезна для настройки корректного разрешения при подключении к внешнему монитору или телевизору.




Вывод доступных мониторов и режимов
Введя в терминале
xrandr
, мы увидим список интерфейсов по которым могут быть подключены мониторы и доступные режимы работы монитора (разрешение и частота смена кадров в герцах).
Пример вывода:
Screen 0: minimum 320 x 200, current 1024 x 600, maximum 4096 x 4096
LVDS1 connected 1024x600+0+0 (normal left inverted right x axis y axis) 223mm x 125mm
1024x600 60.0*+
800x600 60.3 56.2
640x480 59.9
VGA1 disconnected (normal left inverted right x axis y axis)

Возможные названия интерфейсов:

  • LVDS1 — экран ноутбука;

  • VGA1 — экран, подключаемый через VGA;

  • DVI1 — экран, подключаемый через DVI;


Названия интерфейсов могут отличаться в зависимости от используемой видеокарты. Для последующей работы с конкретным интерфейсом, необходимо запомнить его название (например, VGA1 если мы работам на видео от Intel и подключаем монитор по VGA, который и хотим настроить через XRandR).

Изменение разрешения
Лучше всего рассмотреть пример:
xrandr --output LVDS1 --mode 800x600

Опция --output предназначена для указания на нужный интерфейс, а --mode собственно на выбираемый режим работы. Обратите внимание, что выбираемый режим должен быть указан в выводе команды
xrandr
(смотреть предыдущий раздел статьи).
Если нужный вам режим не прописан, то необходимо добавить его вручную. Это позволяет настроить монитор на правильное разрешение, при ситуации, когда в списке оно отсутствует (например, если при подключении 1080p монитора в программах настройки экрана доступно лишь намного меньшее разрешение). Данная проблема связана с тем, что некоторые мониторы и множество телевизоров почему-то не считают нужным передавать информацию о своём разрешении при подключении через VGA.
Создание нового режима
Если режим уже существует (смотреть перввую часть статьи), но не связан с нужным интерфейсом, то можно добавить режим таким образом:
xrandr --addmode VGA1 1024x600
— добавляем режим с разрешением 1024x600 и 60 Гц частотой для монитора, подключённого по VGA1.
Если режима ещё не существует, то сначала вызываем утилиту CVT (Coordinated Video Timing) с необходимым разрешением и частотой кадров в качестве параметров (в качестве примера добавим режим 1600x900 при 60Гц):
cvt 1600 900 60

Вывод утилиты cvt с нашими параметрами таков:
# 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync

Далее мы скопируем всё, что после Modeline при вызове xrandr с ключём создания нового режима:
xrandr --newmode "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync

Теперь осталось "привязать" созданный режим к нужному интерфейсу (в нашем примере к VGA1):
xrandr --addmode VGA1 1600x900_60.00

Наконец, мы можем выбрать нужное нам разрешение для монитора:
xrandr --output VGA1 --mode 1600x900_60.00


Режимы работы с несколькими мониторами
Отключение дисплея
Отключить не нужный в данный момент дисплей можно с помощью опции --off:
xrandr --output LVDS1 --off
— отключаем монитор ноутбука.
Расположение мониторов относительно друг-друга
xrandr --output VGA1 --right-of LVDS1
— монитор, подключённый по VGA1 будет располагаться "справа" от монитора ноутбука (переходить на внешний монитор необходимо будет через правый угол монитора ноутбука).
Аналогично используется опция --left-of
xrandr --output LVDS1 --primary
— монитор ноутбука становится основным.
Чтобы сделать виртуальный экран большего разрешения, чем физический (в таком режиме, чтобы увидеть всё изображение необходимо будет передвигать курсор за границы) применяем команду:
xrandr --output LVDS1 --mode 1024x600 --fb 1280x720 --panning 1280x720

После этого у вас будет виртуальное разрешение 1280x720 при 1024x600 физическом.

Поворот
Используйте следующие опции применительно к нужному интерфейсу:

  • --rotate normal

  • --rotate left

  • --rotate right

  • --rotate inverted (поворот на Пи радиан)



Сохранение настроек
Для активации необходимых настроек при старте, создайте файл ~/.xprofile (~/ указывает на расположение в домашней директории) и внесите в него необходимые строки команд xrandr.

Статья частично основана по материалам англоязычной документации.

Комментарии:
Автор: Bvz,   дата: 01 апреля 2012   09:59:52
Целый месяц не писали
Автор: palPred,   дата: 05 апреля 2012   17:40:41
Спасибо!
Автор: Makc,   дата: 31 августа 2012   19:18:37
Спасибо, наконец-то настроил, буду искать сведения о "xprofile".
Автор: Shaolin,   дата: 20 ноября 2012   18:09:44
Спасибо Вам за краткую, емкую, а главное - полезную статью.
Автор: Subsanek,   дата: 20 ноября 2012   18:10:47
Shaolin, и вам спасибо!
Автор: Yuriy,   дата: 03 декабря 2012   12:16:08
Спасибо за статью понятную, полезную. Ни где больше не мог найти такую статью везде советы не рабочие и в основном о изменении файла в ручную xorg.conf
Автор: Vadim,   дата: 11 декабря 2012   13:45:39
Спасибо,и мне очень пригодилось.
Автор: cold water,   дата: 05 января 2013   20:37:06
Не получается, не могли бы расшифровать сообщения об ошибках:
----------------------------------------------
$ sudo xrandr --addmode VGA-0 "1600x900_60.00"
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 153 (RANDR)
Minor opcode of failed request: 18 (RRAddOutputMode)
Serial number of failed request: 31
Current serial number in output stream: 32
-----------------------------------------------
Монитор широкоформатный
Автор: Игорь,   дата: 19 февраля 2013   20:08:27
Спасибо большое за информацию, долго искал такую статью
Автор: iiihyp,   дата: 22 марта 2013   14:20:37
огромное спасибо, тоже давно искал статью про эту проблему, все как обычнов линуксе решается парой строк, но которые фиг где узнаешь )
Автор: Igor,   дата: 29 марта 2013   21:11:01
спасибо!!!насамом деле все просто, если знаешь как!
Автор: Subsanek,   дата: 29 марта 2013   21:13:07
Igor, пожалуйста.
Автор: kekspetrovich,   дата: 06 мая 2013   17:05:00
доброго дня.
можно ли виртуальный экран сделать меньше физического размера монитора?
есть монитор левая часть которого повреждена(темная сторона поглотила).
нужно выводить изображение только на правую половину монитора.
можно ли это реализовать? и как?
пробовал колдовство с xrandr через параметр --panning и --fb
но не хватает знаний и интуиции как это правильно сделать.
Автор: Subsanek,   дата: 06 мая 2013   18:08:03
kekspetrovich, даже не знаю чем помочь. xrandr не даёт сделать виртуальный экран меньше, чем физический.
Автор: kekspetrovich,   дата: 08 мая 2013   09:13:32
Похоже на то. а есть у вас идеи по этому поводу? в какую сторону копать? можно же как-то заставить иксы выводить изображение только на половину экрана.
Автор: Subsanek,   дата: 19 мая 2013   03:34:45
kekspetrovich, даже не знаю. Не типичная задача.
Автор: Светлана,   дата: 24 мая 2013   13:30:33
а что делать если в списке доступных разрешений - 1024*768 - это Maxixmum
а хочется 1280*800
Автор: Subsanek,   дата: 24 мая 2013   13:34:14
Светлана, об этом в статье написано в разделе Создание нового режима.
Автор: Alex,   дата: 13 августа 2013   20:02:58
Добрый день. Вот что мек выдает xrandr:
"Screen 0: minimum 320 x 200, current 3280 x 1200, maximum 3120 x 3120
DFP1 disconnected (normal left inverted right x axis y axis)
DFP2 disconnected (normal left inverted right x axis y axis)
DFP3 disconnected (normal left inverted right x axis y axis)
DFP4 disconnected (normal left inverted right x axis y axis)
DFP5 disconnected (normal left inverted right x axis y axis)
DFP6 disconnected (normal left inverted right x axis y axis)
DFP7 disconnected (normal left inverted right x axis y axis)
DFP8 disconnected (normal left inverted right x axis y axis)
DFP9 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 473mm x 296mm
1680x1050 60.0*+
1400x1050 60.0
1280x1024 75.0 60.0
1440x900 75.0 59.9
1280x960 60.0
1280x800 60.0
1152x864 60.0 75.0
1280x768 60.0
1280x720 60.0
1024x768 75.0 70.1 60.0
800x600 72.2 75.0 60.3 56.2
640x480 75.0 72.8 67.0 59.9
DFP10 disconnected (normal left inverted right x axis y axis)
CRT1 connected 1600x1200+1680+0 (normal left inverted right x axis y axis) 0mm x 0mm
1600x1200 60.0*+
1400x1050 60.0
1600x900 60.0
1280x1024 60.0
1440x900 59.9
1280x960 60.0
1366x768 59.8
1360x768 60.0
1280x800 59.8
1152x864 60.0
1280x768 59.9
1280x720 60.0
1024x768 60.0
800x600 60.3
720x480 60.0
640x480 59.9"

что и как мне надо изменить, чтобы CRT1 работал в резолюции 1920х1080. В данный момент 1600 - это максимальная резолюция.

Спасибо
Автор: Subsanek,   дата: 13 августа 2013   20:43:36
Alex, здравствуйте. А сам монитор то поддерживает более 1600x1200? Если да, то можно создать новый профиль, пример описан в разделе "создание нового режима" этой статьи.
Автор: mexx,   дата: 07 октября 2013   11:11:06
Добрый день. HDMI будет показан с вариантами разрешения (он единственный подключен, к ТВ)?
Автор: Subsanek,   дата: 07 октября 2013   11:35:05
mexx, здравствуйте! Да, подключение по HDMI настраивается через XRandR также как и остальные.
Автор: mexx,   дата: 07 октября 2013   11:57:55
Спасибо. Буду пробовать.
Автор: mexx,   дата: 08 октября 2013   09:10:44
TV по HDMI:
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 1920 x 1920
DFP1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 1280mm x 720mm
1920x1080 60.0*+ 50.0 30.0 25.0 24.0
Что такое 0+0?
Автор: Subsanek,   дата: 08 октября 2013   09:24:38
mexx, по всей видимости, это смещение изображения по оси x и y (+0+0 без смещения).
Автор: mexx,   дата: 08 октября 2013   14:52:57
ОК, спасибо.
Автор: Сергей,   дата: 13 ноября 2013   11:03:15
Спасибо за полезную статью.
Столкнулись с проблемой на производственном компьютере, время от времени (при запуске одного приложения) слетает разрешение и подключается дополнительный монитор. Как сделать, чтобы этого избежать?
Автор: Subsanek,   дата: 13 ноября 2013   11:08:00
Сергей, как правило, это проблема самого приложения. Нужно смотреть в его настройках.
Автор: Kirimai,   дата: 11 января 2014   18:01:53
Благодарю за статью, очень полезно. Задал 1920х1080_60.60 для своего ноута dell inspiron 1525 с выходом на телевизор
Автор: Upa,   дата: 18 апреля 2014   19:54:06
не сохраняются настройки
Автор: Spaser,   дата: 27 мая 2014   10:05:06
Вы здесь не указали, что ~/.xprofile должен быть исполняемым. В англоязычной версии это описано. Я, как новичок, этого не сделал. И, как следствие, при запуске системы разрешение не устанавливается на нужное автоматически. А таких новичков много в сети.
Автор: Subsanek,   дата: 27 мая 2014   16:35:43
Spaser, спасибо за дополнение!
Автор: Svetaslav,   дата: 21 июля 2014   19:13:30
Подскажите как изменить разрешение на удаленном компьютере VDS-debian. Предлагается не более 1024*768
xrandr выдает ошибку:
Failed to get size of gamma for output default
Перебор выходов не помогает. К примеру такое бывает при установке на virtualbox, но там все решает установка гостевых дополнений. А как здесь? Что тут можно установить?
Автор: Andrew,   дата: 12 августа 2014   11:28:31
Применительно в дистрибьютиву OpenSuse 13.1.
Исполняемый файл, который читается при запуске сеаса, создавать не надо. Он уже есть в домашнем каталоге пользователя и называется .profile
Автору огромное спасибо, добавил в этот файл три строчки xrandr и решил проблему.
Автор: Spaser,   дата: 15 августа 2014   15:22:12
Для Andrew.
Странно. Внёс команды в .profile, из трёх строчек выполняется только первая. Может так какие паузы повставлять нужно? Или ещё что?
Автор: Abel,   дата: 21 сентября 2014   10:44:06
Все получилось. Отличная статья! Но у мня есть маленький недочет - виртуальный экран сместился вверх и влево. Xrandr умеет его "вернуть" на место по осям?
Автор: Subsanek@gmail.com,   дата: 21 сентября 2014   23:25:48
Abel, не совсем понимаю как сместился, чтобы попасть за границы видимого экрана нужно перевести в ту область курсор, ну или попробуйте задать режим заново.
Автор: Илья,   дата: 15 ноября 2014   23:01:59
приподключении через HDMI, название интерфейса HDMI и прописывать?!
Автор: Subsanek,   дата: 18 ноября 2014   16:37:03
Илья, введите для начала просто xrandr и посмотрите, как обозначен нужный интерфейс. Обычно называется как "HDMI-порядковый номер", в случае подключения через HDMI.
Автор: Илья,   дата: 18 ноября 2014   20:45:04
2 Subsanek, вот, что терминал пишет "HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)", но вход хдми только один, вот в чём дело
Автор: Subsanek,   дата: 08 января 2015   03:48:50
Илья, такое может быть, в таком случае нужно опробовать оба интерфейса.
Автор: stereo,   дата: 24 июля 2015   15:25:00
Ништяк! очень помогло! --primary
Автор: Margo,   дата: 05 января 2016   18:45:53
Нашла у вас совет, как выключить ненужный монитор,
а как ВКЛЮЧИТЬ случайно отключенный монитор?
У меня теперь в середине загрузки монитор щелкает (в момент, когда система считывает эту команду) и выключается.
Далее загрузка системы происходит как обычно, но я уже ничего этого не вижу. :(
Как теперь проникнуть в систему?
Автор: Subsanek,   дата: 05 января 2016   18:54:36
Margo, попробуйте перейти в терминал сочетанием Ctrl+Alt+F2 и удалить проблемную команду из ~/.xprofile (можно использовать редактор nano).
Автор: Margo,   дата: 05 января 2016   20:54:07
Спасибо за быстрый ответ,
в консоль перешла, но у меня такого файла нет.
Где еще оно может быть закопано?

Сходила логическим путем: если у вас "Отключить не нужный в данный момент дисплей можно с помощью опции --off:
xrandr --output LVDS1 --off"
- то включить решила с помощью "всё то же самое --on". Ан нет, размечталась, не так просто.

xrandr вообще отвечает Can't open display.

А вот как xrandr выглядит в другой системе (зашла со спас.диска):

ubuntu@ubuntu:~$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 4096 x 4096
VGA-1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 350mm x 260mm
1600x1200 60.0 60.0
1280x1024 75.0 59.9
1024x768 85.0 75.1 60.0*
800x600 100.0 85.1 75.0 60.3
640x480 85.0 60.0
720x400 70.1
DVI-I-1 disconnected (normal left inverted right x axis y axis)
TV-1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
720x576 50.0 +
1024x768 50.0*
800x600 50.0
720x480 50.0
640x480 50.0
400x300 100.0
320x240 100.0
320x200 100.0

Я так понимаю, VGA-1 это и есть тот монитор, который я убила в своей основной системе? черт побери, один случайный клик мышкой... :(
Автор: Subsanek,   дата: 05 января 2016   21:03:55
Margo, попробуйте создать файл ~/.xprofile с командой xrandr --output VGA-1 --mode 1600x1200 и перезагрузить.
Автор: Margo,   дата: 06 января 2016   03:14:50
Вроде выкрутилась.

Первый способ:
в начале загрузки выбрать recovery mode,
в recovery mode выбрать resume normal boot,
выйдет предупреждение, что это типа Safe mode и не все графические драйверы могут работать,
кликнула ОК, загрузка продолжилась, пришла куда хотела, всё работает как всегда.
Правда, при перезагрузке та же засада, монитор отключается, т.е. recovery mode теперь пожизненно, если не переписать config файл (но КАКОЙ именно?...).
Ну и ладно, всё равно новую ставить пора, сейчас у меня Минт14 Надя, если кому интересно.

Второй способ:
дождаться конца загрузки, перейти в терминал Ctrl+Alt+F2 (у меня F1 тоже годится, да и остальные, наверно, просто не проверяла),
залогиниться, зайти под рутом, скомандовать startx
(если не под рутом, то монитор опять выключится),
далее имею первозданное окно Линукс Минт как только что с диска, т.е. без моих гламурных настроек и почему-то... без мозиллы! Все остальное, установленное за последний год, на месте (включая игры), и всё работает штатно. Исчезла только мозилла, а она-то самое главное, сотни закладок и паролей. Не исключаю, впрочем, что получила бы свою мозиллу со всеми закладками, если б попробовала ее заново установить через синаптик или Оперу - через recovery mode она же загружается! значит, она где-то тут - просто уже не было времени на эксперименты.

Теперь спокойненько, с кофе и булочкой, бэкапнула закладки и попробую создать файл по вашему совету. :)
Спасибо, что поддержали!
Автор: user,   дата: 16 марта 2016   10:18:25
автор, как сделать включение монитора с клавиши?
Автор: Askar,   дата: 24 мая 2016   17:13:44
Спасибо помогло




 
Добавить комментарий:
Имя:*
e-mail:
Комментарий:*
Введите число 26*


Архив статей:
Апрель 2016
Март 2016
Октябрь 2013
Сентябрь 2013
Май 2013
Март 2013
Ноябрь 2012
Июль 2012
Июнь 2012
Апрель 2012
Март 2012
Февраль 2012
Апрель 2011
Март 2011
Февраль 2011
Январь 2011
Декабрь 2010
Ноябрь 2010
Октябрь 2010
Сентябрь 2010
Август 2010
Июль 2010
Июнь 2010
Май 2010
Апрель 2010
Март 2010


Случайные:
LTSP - как установить ОС одновременно на несколько компьютеров

Windows OpenSoft Pack - сборник свободного программного обеспечения для Windows

XNeur: автоматическое переключение раскладки клавиатуры в linux

Склейка снимков в видеоролик с помощью ffmpeg (замедленная киносъёмка)

Настройка внешнего вида меню GRUB 2

Stellarium — свободный виртуальный планетарий




Коллеги:    все
 Linux для всех


Наши баннеры:
linuxnow.ru
linuxnow.ru
Установить баннер