Использование xrandr.

Иногда случается, что приложение (чаще всего игра) меняет разрешение на нестандартное, а потом забывает его менять обратно. В этом случае поможет чудесная команда:
xrandr -s 0


Но возможности этой утилиты гораздо шире.
Для сервера X11 у большинства современных видеодрайверов (в том числе и для злополучного fglrx) существует расширение Randr (rotate and resize). Текущая версия 1.2 обладает широкими возможностями.

Выполним xrandr без параметров и посмотрим на результат:
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 2048 x 2048
LCD connected 1280x800+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
   1280x800       59.9*+
   1280x768       59.9  
   1280x720       59.9  
   1024x768       59.9  
   800x600        59.9  
   720x480        59.9  
   640x480        59.9  
   640x400        59.9  
   512x384        59.9  
   400x300        59.9  
   320x240        59.9  
   320x200        59.9  
DFP1 disconnected (normal left inverted right x axis y axis)
CRT1 disconnected (normal left inverted right x axis y axis)
TV disconnected (normal left inverted right x axis y axis)
Сейчас к моему ноутбуку не подключено ни одно внешнее устройство вывода изображения. Однако допустим, что я подключил по VGA монитор меньшего разрешения чем матрица ноутбука (в моём случае это телевизор, умеющий 1280×768). Тогда, возможно, я захочу продублировать изображение. Однако amdcccle и другие утилиты умеют дублирование видео только для одинаковых по разрешению мониторов.

А в случае с xrandr можно выполнить следующее:
xrandr --output CRT1 --mode 1280x768 --pos 0x16

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

Однако чаще возникает другая ситуация, необходимость расширить рабочий стол. Тут не обойдётся без правки xorg.conf
Section "Screen"
	Identifier "aticonfig-Screen[0]-0"
	Device     "aticonfig-Device[0]-0"
	Monitor    "aticonfig-Monitor[0]-0"
	DefaultDepth     24
	SubSection "Display"
		Viewport   0 0
		Depth     24
		Virtual   2048 2048
	EndSubSection
EndSection
Строка Virtual задаёт размер виртуального пространства экрана, в котором можно будет размещать устройства вывода. В моём случае (1280×800 и 1280×768) будет логичнее всего будет разместить вертикально, потому что разрешение по горизонтали совпадает:
xrandr --fb 1280x1568 --output CRT1 --mode 1280x768 --pos 0x800
Мы меняем размер «холста» и указываем, где находится crt1. Ман говорит, что можно использовать такие опции как --above-of, --same-as и --left-of, но ручное задание координат гибче.

Отключить CRT1 можно командой:
xrandr --output CRT1 --off
  • +6
  • 23 августа 2009, 22:16
  • deniska      


Комментарии (2)

RSS свернуть / развернуть
+
0
А если не хотите парится с консолью то просто поставьте gxrandr и будет вам счастье.
avatar

Magi-max

  • 24 августа 2009, 23:59
+
0
gxrandr умеет?

Теперь экран дублируется на оба устройства вывода, но на меньшем отсекается 16 пикселей сверху и снизу. Это удобно например для игр на большом экране, потому что не надо шаманить с настройками видеорежимов в самой игре.
avatar

deniska

  • 25 августа 2009, 00:08

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.