Поиск

четверг, 18 октября 2012 г.

Подключение второго монитора на Arch Linux с помощью xrandr

Use xrandr to set a screen resolution


From time to time I see posts on various Linux forums asking how to set a screen resolution.
Often this results in a discussion about writing a configuration file, xorg.conf ( /etc/X11/xorg.conf )
While there is nothing wrong with writing a xorg.conf, xorg.conf is depreciated and writing an xorg.conf is intimidating to many users.
Using xrandr is potentially faster and easier.

How to use xrandr

First display a list of your monitor resolutions
xrandr -q
Note: If you do not see the resolution you desire listed, either your monitor does not support that particular resolution or you may need to install a driver (ati, intel, or nvidia are the big 3). The technical details of installing these drivers varies by graphics card and will not be covered in this blog.
Then set the resolution you want to use (change the “1400×1050″ to your desired resolution).
xrandr -s 1400x1050

Adjusting the dpi (dots per inch)

dpi refers to the resolution of your monitor (pixels per inch) and affects window decorations, window size, and font. See this page for additional information.
On many monitors xrandr will set the dpi automatically. When it does not, or if you prefer an alternate setting, you can try specifying a dpi manually.
xrandr --dpi 96 -s 1400x1050
If that fails, you can specify a dpi in ~/.Xdefaults
Open any editor and enter the following configuration:
Xft.dpi: 96
This dpi will then be applied to any new windows you open. Alternately you can log off and back on (no need to reboot).
If 96 is not the right size for your, try a smaller ( 72 ) or larger ( 135 ) value.

Dual monitors

To use xrandr to configure dual monitors, use the --right-of or --left-of options.
Example, using a nvidia card:
First list your monitors with xrandr, note the monitor names (in bold).
bodhi@zenix:~$ xrandr -q
Screen 0: minimum 320 x 200, current 1920 x 1200, maximum 4096 x 4096
DVI-I-1 connected 1920x1200+0+0 (normal left inverted right x axis y axis) 520mm x 320mm
1920×1200 60.0*+
1600×1200 60.0
1680×1050 60.0
1280×1024 75.0
1280×960 60.0
1152×864 75.0
1024×768 75.1 70.1 60.0
832×624 74.6
800×600 72.2 75.0 60.3 56.2
640×480 72.8 75.0 60.0
720×400 70.1
DVI-I-2 connected 1920x1200+0+0 (normal left inverted right x axis y axis) 520mm x 320mm
1920×1200 60.0*+
1600×1200 60.0
1680×1050 60.0
1280×1024 75.0
1280×960 60.0
1152×864 75.0
1024×768 75.1 70.1 60.0
832×624 74.6
800×600 72.2 75.0 60.3 56.2
640×480 72.8 75.0 60.0
720×400 70.1
TV-1 disconnected (normal left inverted right x axis y axis)
Use xrandr to configure the monitors. Change the names “DVI-I-1″ and “DVI-I-2″ to the names of your monitors. You may also need to adjust the resolution and change “--left-of to” “--right-of”
xrandr --auto --output DVI-I-2 --mode 1920x1200 --left-of DVI-I-1
Has the same effect as
xrandr --auto --output DVI-I-1 --mode 1920x1200 --right-of DVI-I-2

Set a primary display

To set a primary display, use the --primary option.
xrandr --auto --output DVI-I-1 --mode 1920x1200 --primary --right-of DVI-I-2

Configuring xrandr to run when you log in

The method to do this varies by desktop and with most major desktop environments (gnome, kde, xfce) you would add the xrandr command to your start up options / applications.
With openbox, add the xrandr command to ~/.config/openbox/autostart.sh.
With fluxbox, use ~/.fluxbox/startup
Alternately, depending on your window manager, you can add the xrandr command to ~/.xinit
For a link on using ~/.xinit, see this fluxbox wiki page or, as an alternate, the Arch wiki Slim page.

Graphical tools

I am aware of 3 5 (thanks to charlie-tca and KenP) graphical font ends for xranadr : lxrandr , grandr, the grandr applet, ARandR, and Krandr.
lxrandr is a part of the lxde and is lightweight and fast, but does not have all of the xrandr options available.
grandr has more a few more options, including rotation, but again not all the xrandr options are available from the graphical interface.
grandr applet is a small application (gnome applet) that would run in your panel and similar to lxrandr allows one to set a resolution.
Krandr is a KDE applet to set your resolution.
arandr is similar to grandr, but IMO the interface seems less intuitive. Arandr will write a script for you to set your resolution at login.
For additional information on using xrandr, see the xrandr man page.

This entry was posted in Linux. Bookmark the permalink.        

Xorg (русский)

Xrandr

xrandr --auto --output VGA-0 --mode 1440x900 --right-of LVDS


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


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 монитора в программах настройки экрана доступно лишь намного меньшее разрешение).
Создание нового режима
Если режим уже существует (смотреть перввую часть статьи), но не связан с нужным интерфейсом, то можно добавить режим таким образом:
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.

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