С развитием технологий экраны для компьютеров смогли значительно увеличить разрешение. Если старые экраны показывали 640х800 пикселей, то более новые отображают уже 1920х1080. У последних моделей разрешение ещё выше.
В операционной системе Linux существует несколько способов настройки разрешения экрана. В обычных системах, как правило, это не нужно. Но если вы хотите использовать несколько мониторов или решили запустить Linux на виртуальной машине, то разрешение может определиться неправильно и тогда придётся его настроить. В этой статье мы рассмотрим, как изменить разрешение экрана в Linux через графический интерфейс и терминал.
Содержание статьи
Настройка разрешения экрана в GUI
Разберём настройку разрешения на примере дистрибутива Ubuntu и окружения рабочего стола Gnome. Откройте утилиту Настройки из главного меню:
Перейдите на вкладку Устройства, а затем выберите пункт Настройка экранов:
Если к компьютеру подключено два монитора Linux или больше, то у вас будет три варианта работы экранов:
- Объединение - все экраны объединяются в одно рабочее пространство;
- Зеркальное отображение - одинаковая картинка на всех экранах;
- Один экран - картинка только на одном экране, другие отключены.
Независимо от того, какой режим вы выбираете, будут доступны настройки Разрешение и Частота обновления, где вы сможете настроить нужные вам параметры:
Так выполняется настройка монитора Linux через графический интерфейс. Если вы хотите объединить экраны, то можно указать разрешение мониторов Linux для каждого из них отдельно:
Но здесь есть один недостаток, вы можете выбрать только то разрешение экрана, которое предлагает система. Если вы захотите установить разрешение выше или ниже тех, что есть, то у вас ничего не выйдет. Для этого надо воспользоваться терминалом.
Как изменить разрешение экрана через терминал
Для управления настройками экрана из терминала можно использовать утилиту xrandr. Синтаксис утилиты очень прост:
xrandr опции параметры
Разберём основные опции утилиты, которые будем использовать:
- --verbose - включить более подробный вывод;
- --version - версия программы;
- --query - когда установлена эта опция или не указанно никаких опций, выводится текущая конфигурация;
- -d, --display - позволяет указать какой X экран использовать по имени;
- -s, --screen - устанавливает дисплей для настройки по ID;
- --output - устанавливает дисплей для настройки по имени или ID;
- --primary - выбрать основной экран;
- --size - позволяет указать размер экрана;
- --rate - устанавливает частоту обновления;
- --dpi - устанавливает DPI, количество точек на дюйм, которое позволяет вычислить правильный размер для окон;
- --newmode - создаёт новый режим отображения по размеру и частоте;
- --rmmode - удаляет режим отображения;
- --addmode - добавляет созданный режим к списку доступных для использования;
- --delmode - удалить режим из списка доступных;
- --mode - активирует указанный режим;
- --off - отключает экран;
- --gamma - позволяет установить коррекцию гаммы, в формате красный:зеленый:синий;
Чтобы посмотреть текущие параметры системы, запустите утилиту без параметров:
xrandr
Как видите, к моей системе подключено два экрана:
- LVDS-1 - встроенный экран ноутбука;
- HDMI-1 - внешний экран;
Для каждого экрана доступно несколько разрешений, текущее разрешение отмечено звёздочкой. Чтобы изменить разрешение экрана Linux на одно из доступных, используйте опцию --mode вместе с --output:
xrandr --output HDMI-1 --mode 1680x1050
Теперь звёздочка выводится около разрешения 1680х1050.
Хорошо, мы разобрались с тем, как добавить одно из существующих разрешений. По сути, то же самое, что и в графическом интерфейсе. Но если нужного разрешения в списке нет, то его можно добавить. Для этого сначала нужно конвертировать обычную запись в формат VESA. Для этого используйте утилиту cvt. Например, создадим режим с разрешением 2000х1100 и частотой обновления 60:
cvt 2000 1100 60
Дальше надо скопировать из вывода утилиты всё, что написано после "Modeline". Осталось использовать скопированный текст в xrandr:
xrandr --newmode "2000x1100_60.00" 183.75 2000 2136 2344 2688 1100 1103 1113 1141 -hsync +vsync
Добавляем только что созданное разрешение к списку доступных для нужного нам экрана:
xrandr --addmode HDMI-1 2000x1100_60.00
А затем активируем, как описывалось выше:
xrandr --output HDMI-1 --mode 2000x1100_60.00
xrandr
Но будьте аккуратны с новыми разрешениями. Если вы устанавливаете разрешение выше, чем поддерживает ваш монитор, то он просто не будет показывать. Но такая штука может быть полезна с VirtualBox, или если компьютер не определяет, что ваш монитор поддерживает более высокое разрешение.
Чтобы сохранить настройки после перезагрузки, добавьте команду активации разрешения в конфигурационный файл ~/.xprofile:
vi ~/.xprofile
Синтаксис файла очень похож на ~/.xinitrc. Все команды из него автоматически выполняются при старте сессии. Или же вы можете использовать любой другой метод автозагрузки, который работает после запуска X.
Выводы
В этой статье мы рассмотрели несколько способов настроить разрешение экрана Linux с помощью графического интерфейса или через терминал. Как видите, это не так сложно, как может показаться на первый взгляд.
может кому и пригодится, если больше не о чем
У меня реально проблема до конца не решена с подключением 4к телевизора LG 49 inches к ПК по hdmi кабелю .Испробовал все самые известные дистрибутивы остановился на ubuntu 18.04 хотя заметил не столько в дистре проблемы сколько в DE .GTK еще как то более адекватно работают на отрытых драйверах с 49 inches дисплеем а QT сколько намучился что то свыше 32 inches все никак не получается настроить . На нуво драйвере хотя бы разрешение можно установить приемлемое,но есть тиринг проблема с маштабированием и прочие огрехи .Сразу поставил проприетарный nvidia драйвер так телевизор с ПК отказываются дать желаемый результат .То изображение не тот маштаб экрана то картинка рябит не качественная ,на этом же компе 2 система винда 10 определяет отлично автоматом . А в Linux нуво еще как то можно ручками настроить , nvidia драйвер вообще жесть .Больше всего бесит если используешь приемлемое разрешение например 1920x1080 то картинка не влезает в экран или стоит косо или шрифты смазываются .Вообщем пока мес открый драйвер ну более менее .Но это факт кто подключает более большие мониторы или телевизоры .
Очень рекомендую автору:
1) Создать список тем по софту и железу;
2) Провести опрос среди посетителей сайта;
3) На основании этого опроса строить свою дальнейшую политику! )))
Пишите - и мы напишем Вам нужные статьи )))
На самом деле - все очень просто)))
Да можно было бы сделать из контента а контент у этого автора мне нравится много интересного прочитал почерпнул можно было сделать более активный и полезный если не форум ,но комментарии для помощи ,тем более линуксоподобные системы у нас в руках ......
А не 640*480
Нет, данный формат - это формат Windows XP mobile коммуникаторов, даже 95 винда спокойно выдавала 600 с копейками на 800 с мелочью.
Спасибо. Мне помогло, все супер
Добрый день. где найти нубу
"Чтобы сохранить настройки после перезагрузки, добавьте команду активации разрешения в конфигурационный файл ~/.xprofile:"
Так и вводите в терминале, как указано автором. Только, автор использует редактор файлов vi, а можно любой другой. Я, например, vi не люблю. Использую nano, больше нравится. Поэтому, я писал так:
nano ~/.xprofile
После этого откроется редактор, в который нужно вставить строчку, подобную указанной выше автором на фото. Потом этот файл нужно сохранить.
Все делал, как написано. Каждый раз xrandr выдавал, что не может найти size of gamma. В итоге все и не получилось. А так, да, почитать интересно. =)
Добрый день.У меня не получилось. Поможите?
После перезагрузки, созданное разрешение слетает. И приходится делать все заново. Не в курсе как решить?
Надо сделать скрипт, настраивающий разрешение и добавить его в автозагрузку.
Отличное завершение! 😀
А как скрипт написать, все конечно в курсе...
В статье предлагается добавить команду в файл ~/.xprofile. Или можно сделать скрипт. Те, кто не в курсе как писать скрипты могут почитать здесь - https://losst.pro/napisanie-skriptov-na-bash А вот автозагрузка - https://losst.pro/avtozagruzka-v-ubuntu. Я не буду писать одно и то же в каждой статье.
Ну так обычно так и пишут, делая ссылки на свои прошлые статьи. В этой же не было таких упоминаний. Смысл этой странички, как я понимаю, в том, чтобы человек не бегал после этого гуглить, а оставался и находил ответы в рамках этого сайта. Вот и можно было сразу написать, что "чтобы команду не вводить каждый раз вручную, можно написать скрипт, а о том как это сделать, я ранее написал ТУТ" )
Я вот, честно, заходил с мыслью, что если ты не ответил, то пойду гуглить. Надо уважать свой труд и если он уже есть, не долго же сослаться именно на него ) Это так, пожелание читателя. =)
А в общем, конечно - большое спасибо. Драйверы искал, но не нашёл, а поменять разрешение на оптимальное - это по сути замена любого драйвера, так что решение универсальное и решающее проблему отсутствия драйверов под линукс, практически любого монитора...
Так уж вышло, что в другом месте снова понадобилось ставить разрешение, которого нет )
Всё сделал в точности, как делал, но появилась ошибка и разрешение не выставлялось.
X Error of failed request: BadName (named color or font does not exist)
Погуглив в Яндексе нашёл русскоязычный сайт, но там хотя тема была помечена "решено", решения написано не было, а вот на англоязычном форуме решение было расписано подробно.
cvr нужно всё так же прописывать целиком, типа cvr 1280 1024 60, а вот вместо полного профиля 1280x1024_60, его нужно назвать 1280 и всё - ошибка пропадает...
До этого сидел на Debian где просто подгружал оболочку xUbuntu, а тут пересел на чисто xUbuntu и случилось вот такое приключение. Зато, в отличие от Debian, тут заработал файл ~/.xprofile и теперь надобность в отдельном скрипте отпала, потому что этот файл по сути выполняет его роль.
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 18 (RRAddOutputMode)
Serial number of failed request: 29
Current serial number in output stream: 30
Что делать?
Появилось после команды xrandr --addmode VGA-0 1920x1080_60.00
Спасибо! Помогло при работе через AnyDesk. Что-то все статьи про rdp не помогли 🙁
А как добавить к новому разрешению ещё и подходящее соотношение сторон? И можно ли к существующему разрешению добавлять частоту развёртки?
Уважаемый Основатель и администратор сайта losst.pro. А вы не могли бы поподробнее расписать, или дать ссылку, как все таки редактировать файл автозагрузки, для того чтобы настройки разрешения экрана сохранялись. Ведь для вас это ... просто, а в этой статье прописаны ВСЕ команды как изменить разрешение экрана, (и спасибо Вам все получается), кроме одной, КАК ВСЁ ЭТО СОХРАНИТЬ. Ведь файл автозагрузки не последний в системе. Буду вам благодарен если вы вышлите подробную инструкцию со всеми командами.
Здесь описано несколько способов автозагрузки - https://losst.pro/avtozagruzka-v-ubuntu
Добрый день. Вопрос, который самостоятельно не могу решить. При установке ОС Android на компьютер (Линукс такая же проблема была) , экран монитора 19 дюймов имеет справа темную полосу и работает как на 17 дюймов. Причем при перестановки двух мониторов с компьютера на компьютер оба работают нормально. В Линуксе эта проблема с данным монитором в связке с системником так же была, но решалась набором команд cvt 1440 900 60.... и далее xrandr (newmode, addmode...). В Андроид эти команды не работают. Добавлял строки в файл build,prop : ro.sf.lcd_.... и tcc.hdmi.uisize=..... Результата никакого. Система работает так же как на смартфоне. Монитор Филипс 190CW7CS.
Пара замечаний к статье.
Там, где скриншот вывода xrandr без параметров, не видно первых строк. А зря. Потому что в первых строках (относится к теме статьи напрямую) указывается максимально возможное разрешение, которое можно получить с этого железа. Вещь архи-полезная. Так, у меня на 19" мониторе (с "официальным" максимальным разрешением 1360х786) окно gimp-gutenprint полностью не помещалось. При этом xrandr показал возможные аж 32767 x 32767, так что до 1600х900 я увеличил спокойно. Правда, что не смог победить, изменилось соотношение сторон, (хотя и увеличил пропорционально. Буду еще думать, искать.
~/xprofile - это локальное решение, на одного пользователя. Если изменение разрешения экрана актуально для всех пользователей (если их больше одного 😉 ) ИМХО имеет смысл править xorg.conf
За статью спасибо
Более подробно об этом можно почитать тут: https://wiki.archlinux.org/title/xrandr#Installation
Не работает ваша схема, если при загрузке свежеустановленной убунты разрешение монитором не поддерживается. А при вводе ксандр не видет монитор
На 20221125 для ubunta 22.04 рекомендация из статьи : " добавьте команду активации разрешения в конфигурационный файл ~/.xprofile.....Все команды из него автоматически выполняются при старте сессии" не работает. Остальной контент рабочий. Попытки легко перейти на линукс с виндовс подобны поискам золота инков, Шамбалы и вечного двигателя. Так же неугомонны, многообещающи и безуспешны. :::)).
не получается изменить разрешение и подключить втоой монитор в ubuntu 22.04 lts на huawei matebook e
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 2560 x 1600, current 2560 x 1600, maximum 2560 x 1600
default connected primary 2560x1600+0+0 0mm x 0mm
2560x1600 93.00*
тоже самое на ASUS K50C
Как изменить разрешение на 2560 1440? С установочной флешки запускаю, устанавливаю через xrandr и всё работает, но установив ос на комп выдает ошибку?!
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 139 (RANDR)
Minor opcode of failed request: 21 (RRSetCrtcConfig)
Value in failed request: 0x0
Serial number of failed request: 22
Current serial number in output stream: 22
разобрался спасибо
Помогло для разрешения 3440х1440 на ubuntu 22, виртуалка в virtualBox
Спасибо!