Главная >> Инструкции >> Разрешение экрана в Linux

Разрешение экрана в Linux

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

Creative Commons License
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

33 комментария к “Разрешение экрана в Linux”

  1. У меня реально проблема до конца не решена с подключением 4к телевизора LG 49 inches к ПК по hdmi кабелю .Испробовал все самые известные дистрибутивы остановился на ubuntu 18.04 хотя заметил не столько в дистре проблемы сколько в DE .GTK еще как то более адекватно работают на отрытых драйверах с 49 inches дисплеем а QT сколько намучился что то свыше 32 inches все никак не получается настроить . На нуво драйвере хотя бы разрешение можно установить приемлемое,но есть тиринг проблема с маштабированием и прочие огрехи .Сразу поставил проприетарный nvidia драйвер так телевизор с ПК отказываются дать желаемый результат .То изображение не тот маштаб экрана то картинка рябит не качественная ,на этом же компе 2 система винда 10 определяет отлично автоматом . А в Linux нуво еще как то можно ручками настроить , nvidia драйвер вообще жесть .Больше всего бесит если используешь приемлемое разрешение например 1920x1080 то картинка не влезает в экран или стоит косо или шрифты смазываются .Вообщем пока мес открый драйвер ну более менее .Но это факт кто подключает более большие мониторы или телевизоры .

    Ответить
  2. Очень рекомендую автору:
    1) Создать список тем по софту и железу;
    2) Провести опрос среди посетителей сайта;
    3) На основании этого опроса строить свою дальнейшую политику! )))
    Пишите - и мы напишем Вам нужные статьи )))
    На самом деле - все очень просто)))

    Ответить
    • Да можно было бы сделать из контента а контент у этого автора мне нравится много интересного прочитал почерпнул можно было сделать более активный и полезный если не форум ,но комментарии для помощи ,тем более линуксоподобные системы у нас в руках ......

      Ответить
    • Нет, данный формат - это формат Windows XP mobile коммуникаторов, даже 95 винда спокойно выдавала 600 с копейками на 800 с мелочью.

      Ответить
  3. Добрый день. где найти нубу
    "Чтобы сохранить настройки после перезагрузки, добавьте команду активации разрешения в конфигурационный файл ~/.xprofile:"

    Ответить
    • Так и вводите в терминале, как указано автором. Только, автор использует редактор файлов vi, а можно любой другой. Я, например, vi не люблю. Использую nano, больше нравится. Поэтому, я писал так:
      nano ~/.xprofile
      После этого откроется редактор, в который нужно вставить строчку, подобную указанной выше автором на фото. Потом этот файл нужно сохранить.

      Ответить
  4. Все делал, как написано. Каждый раз xrandr выдавал, что не может найти size of gamma. В итоге все и не получилось. А так, да, почитать интересно. =)

    Ответить
  5. После перезагрузки, созданное разрешение слетает. И приходится делать все заново. Не в курсе как решить?

    Ответить
        • В статье предлагается добавить команду в файл ~/.xprofile. Или можно сделать скрипт. Те, кто не в курсе как писать скрипты могут почитать здесь - https://losst.pro/napisanie-skriptov-na-bash А вот автозагрузка - https://losst.pro/avtozagruzka-v-ubuntu. Я не буду писать одно и то же в каждой статье.

          Ответить
          • Ну так обычно так и пишут, делая ссылки на свои прошлые статьи. В этой же не было таких упоминаний. Смысл этой странички, как я понимаю, в том, чтобы человек не бегал после этого гуглить, а оставался и находил ответы в рамках этого сайта. Вот и можно было сразу написать, что "чтобы команду не вводить каждый раз вручную, можно написать скрипт, а о том как это сделать, я ранее написал ТУТ" )
            Я вот, честно, заходил с мыслью, что если ты не ответил, то пойду гуглить. Надо уважать свой труд и если он уже есть, не долго же сослаться именно на него ) Это так, пожелание читателя. =)

            А в общем, конечно - большое спасибо. Драйверы искал, но не нашёл, а поменять разрешение на оптимальное - это по сути замена любого драйвера, так что решение универсальное и решающее проблему отсутствия драйверов под линукс, практически любого монитора...

  6. Так уж вышло, что в другом месте снова понадобилось ставить разрешение, которого нет )
    Всё сделал в точности, как делал, но появилась ошибка и разрешение не выставлялось.
    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 и теперь надобность в отдельном скрипте отпала, потому что этот файл по сути выполняет его роль.

    Ответить
  7. 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
    Что делать?

    Ответить
  8. А как добавить к новому разрешению ещё и подходящее соотношение сторон? И можно ли к существующему разрешению добавлять частоту развёртки?

    Ответить
  9. Уважаемый Основатель и администратор сайта losst.pro. А вы не могли бы поподробнее расписать, или дать ссылку, как все таки редактировать файл автозагрузки, для того чтобы настройки разрешения экрана сохранялись. Ведь для вас это ... просто, а в этой статье прописаны ВСЕ команды как изменить разрешение экрана, (и спасибо Вам все получается), кроме одной, КАК ВСЁ ЭТО СОХРАНИТЬ. Ведь файл автозагрузки не последний в системе. Буду вам благодарен если вы вышлите подробную инструкцию со всеми командами.

    Ответить
  10. Добрый день. Вопрос, который самостоятельно не могу решить. При установке ОС Android на компьютер (Линукс такая же проблема была) , экран монитора 19 дюймов имеет справа темную полосу и работает как на 17 дюймов. Причем при перестановки двух мониторов с компьютера на компьютер оба работают нормально. В Линуксе эта проблема с данным монитором в связке с системником так же была, но решалась набором команд cvt 1440 900 60.... и далее xrandr (newmode, addmode...). В Андроид эти команды не работают. Добавлял строки в файл build,prop : ro.sf.lcd_.... и tcc.hdmi.uisize=..... Результата никакого. Система работает так же как на смартфоне. Монитор Филипс 190CW7CS.

    Ответить
  11. Пара замечаний к статье.
    Там, где скриншот вывода xrandr без параметров, не видно первых строк. А зря. Потому что в первых строках (относится к теме статьи напрямую) указывается максимально возможное разрешение, которое можно получить с этого железа. Вещь архи-полезная. Так, у меня на 19" мониторе (с "официальным" максимальным разрешением 1360х786) окно gimp-gutenprint полностью не помещалось. При этом xrandr показал возможные аж 32767 x 32767, так что до 1600х900 я увеличил спокойно. Правда, что не смог победить, изменилось соотношение сторон, (хотя и увеличил пропорционально. Буду еще думать, искать.
    ~/xprofile - это локальное решение, на одного пользователя. Если изменение разрешения экрана актуально для всех пользователей (если их больше одного 😉 ) ИМХО имеет смысл править xorg.conf

    За статью спасибо

    Ответить
  12. Не работает ваша схема, если при загрузке свежеустановленной убунты разрешение монитором не поддерживается. А при вводе ксандр не видет монитор

    Ответить
  13. На 20221125 для ubunta 22.04 рекомендация из статьи : " добавьте команду активации разрешения в конфигурационный файл ~/.xprofile.....Все команды из него автоматически выполняются при старте сессии" не работает. Остальной контент рабочий. Попытки легко перейти на линукс с виндовс подобны поискам золота инков, Шамбалы и вечного двигателя. Так же неугомонны, многообещающи и безуспешны. :::)).

    Ответить
  14. не получается изменить разрешение и подключить втоой монитор в 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*

    Ответить
  15. Как изменить разрешение на 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

    Ответить

Оставьте комментарий