Так сложилось, что имеющийся у меня монитор при подключении к VGA неправильно выдает список поддерживаемых разрешений. Поэтому в стандартной утилите настройки дисплея я могу поставить разрешение не больше 1024x768. Я же хотел поставить разрешение 1600x900. Найденный мной способ проверен на видеокартах Intel, а также на видеокартах NVidia со свободными драйверами. Решения проблемы для проприетарных драйверов NVidia я не нашел. Также следует отметить, что этот способ не работает, если монитор действительно не поддерживает такое разрешение.
1. Открываем консоль. Узнаем список видеовыходов и поддерживаемых разрешений для каждого выхода командой
xrandr
У меня выходы назывались LVDS1 (монитор ноутбука) и VGA1 (внешний монитор).
2. Создаем Modeline для нужного режима:
cvt 1600 900 60
Первые два числа — разрешение, третье — частота обновления экрана (можно не задавать, по умолчанию будет 60). Команда выдаст примерно следующее:
Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
xrandr --newmode "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
(после --newmode
вставляем вывод команды cvt без слова Modeline).
4. Добавляем новый режим к нужному выходу:
xrandr --addmode VGA1 1600x900_60.00
5. Вводим xrandr
и видим, что режим добавился. Теперь можно запустить стандартную утилиту (Система → Параметры → Экран) и выбрать новое разрешение, либо поменять разрешение из консоли:
xrandr --output VGA1 --mode 1600x900_60.00