Установка и изменение разрешения экрана в linux через консоль

В общем, ноут Sony Vaio, разрешения 1280*600 60Гц и 1600*768 60Гц - но linux упорно выставляет какое-то свое.
Решение: принудительно при загрузке объяснить системе, что у меня есть нужные мне разрешения.
Для начала формируем строку режима которую будем передавать xrandr:

alexander@alexander-vaio ~ $ cvt 1280 600 60
 1280x600 59.90 Hz (CVT) hsync: 37.38 kHz; pclk: 61.00 MHz
 Modeline "1280x600_60.00"   61.00  1280 1328 1456 1632  600 603 613 624 -hsync +vsync
------
"1600x768_60.00"  100.25  1600 1688 1848 2096  768 771 781 798 -hsync +vsync

Нам нужна строка: «1600x768_60.00» 100.25 1600 1688 1848 2096 768 771 781 798 -hsync +vsync
Аналогично получаем строку для 1280х600.
Своим все в скрипт:

#!/bin/bash
xrandr --newmode "1280x600_60.00"   61.00  1280 1328 1456 1632  600 603 613 624 -hsync +vsync
xrandr --newmode "1600x768_60.00"  100.25  1600 1688 1848 2096  768 771 781 798 -hsync +vsync
xrandr --addmode LVDS-0 1280x600_60.00
xrandr --addmode LVDS-0 1600x768_60.00
xrandr --output LVDS-0 --mode 1280x600_60.00

Комментарии:

  1. Сначала добавляем в систему режимы 1280x600_60.00 и 1600x768_60.00, передавая строки режимов (сформированных cvt) в xrandr (–addmode)
  2. Затем говорим системе через xrandr, что режимы у нас применяются к экрану ноутбука (LVDS-0)
  3. Затем принудительно переключаем на режим 1280x600_60.00 для экрана ноутбука (LVDS-0)
  4. Ну и наконец, добавляем этот скрипт в автозагрузку (lubuntu-autostart)

Профит.

Примечание

У xrandr есть замечательный параметр: –size - он позволяет переключить разрешение, а не режим.
А если запустить xrandr без параметров, то будет выдан список разрешений. Пример:

alexander@alexander-ThinkPad-X201 ~ $ xrandr
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 32767 x 32767
LVDS1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 261mm x 163mm
   1280x800       60.2*+   50.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

alexander@alexander-ThinkPad-X201 ~ $ xrandr --size 1024x768
#Установить разрешение в 1280x1024
xrandr --size 1280x1024

Манипуляции с дисплеями

Если у Вас 2х головая видеокарта, и система чудит, пытаясь использовать разрешение одного выхода в другом, то Вам поможет параметр –output и –off:

xrandr --output LVDS1 --off

LVDS1 - имя дисплея, оно получено запуском чистого xrandr.
Если приведенную выше команду запустить при старте системы, например, автозапуском в lightDM (Lubuntu: LightDM), то это гарантирует корректную работу системы в ситуации, когда ядро считает что есть 2 монитора…

Смотри также

Linux: смена разрешения экрана по кнопке