С развитием технологий экраны для компьютеров смогли значительно увеличить разрешение. Если старые экраны показывали 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 ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
Contents
- Resetting an out-of-range resolution
- Dynamically testing different resolutions
- Panning viewport
-
How to setup a dual monitor
-
Introduction
- Output port names
-
Four methods to setup
- By Session with .xprofile
- Dynamic setup with xrandr
- statically setup in xorg.conf
- Xrandr Graphical Front End GUI
- Not recognised video cards
-
Introduction
- Adding undetected resolutions
-
Setting xrandr changes persistently
- Setting xrandr commands in .xprofile
- Setting xrandr commands in kdm/gdm startup scripts
- Setting resolution changes in xorg.conf
-
Setting resolution changes in xorg.conf — resolution lower than expected
- Try this first
- Use cvt/xrandr tool to add the highest mode the LCD can do
- Goto Ubuntu Menu: System -> Preference -> Display
- Obtaining modelines from Windows program PowerStrip
Resetting an out-of-range resolution
If you set a resolution inappropriate for your monitor in the Screen Resolution GUI tool, you can reset it from a terminal by running
-
$ rm ~/.config/monitors.xml
Dynamically testing different resolutions
You can either use the Screen Resolution GUI tool to experiment with different resolutions, or the more powerful xrandr command-line tool. Without parameters, xrandr shows you the names of different outputs available on your system (LVDS, VGA-0, etc.) and resolutions available on each:
-
$ xrandr Screen 0: minimum 320 x 200, current 1400 x 1050, maximum 1400 x 1400 VGA disconnected (normal left inverted right x axis y axis) LVDS connected 1400x1050+0+0 (normal left inverted right x axis y axis) 286mm x 214mm 1400x1050 60.0*+ 50.0 [...]
You can direct xrandr to set a different resolution like this:
-
$ xrandr --output LVDS --mode 1024x768
$ xrandr --output VGA1 --mode 1024x768
The refresh rate may also be changed, either at the same time or independently:
-
$ xrandr --output LVDS --mode 1024x768 --rate 75
$ xrandr --output VGA1 --mode 1024x768 --rate 60
Note that changes you make using xrandr only last through the current session. xrandr has a lot more capabilities — see man xrandr for details.
Panning viewport
If you want to have a panning viewport, i.e., a virtual screen that’s bigger than your physical screen that moves when you move the mouse to the edge («zoomed in» view) specify the desired physical resolution with —mode and the virtual screen size with —fb and panning area (typically same as virtual screen size) with —panning.
For example,
-
$ xrandr --output VGA1 --rate 60 --mode 800x600 --fb 1280x1024 --panning 1280x1024
How to setup a dual monitor
Introduction
This article above will give you some important background information. I will summarize the points that I think are important and add a few points. It makes life easier if you pop open a terminal and type to open your gui monitor program:
-
$ gnome-display-properties
Next uncheck same image in all Monitors. If your watch a lot of movies it is important to set your Monitors to your lower resolution. For example, if they are both 1440 x 900 monitors, make sure it is set to that resolution. If the monitors are different resolutions, you will need it to the resolution of the smaller monitor. So, for example, if one monitor is 1440 x 900 and the other is full HD resolution, you will have to set it at 1440×900. The reason for this is your video will be a black screen when trying to watch a movie so this is very important. Click APPLY. Then you will get a warning and you need to keep your new configuration. You will need to restart your session for this to take effect sometimes. There are 2 simple ways to do this. The first is to log out then log back in, and the second is to hit ctrl+alt+backspace. The second method restarts your x session so make you save your work.
This guide is targeted for people who want to use extended desktop mode on two outputs. Clone mode should work out-of-box with a normal configuration.
With RandR 1.2, you can setup dual head and add/remove monitor dynamically (i.e. on-the-fly, without restarting X).
Output port names
Intel driver — UMS
-
VGA — Analog VGA output
-
LVDS — Laptop panel
-
DP1 — DisplayPort output
-
TV — Integrated TV output
-
TMDS-1 — First DVI SDVO output
-
TMDS-2 — Second DVI SDVO output
The SDVO and DVO TV outputs are not supported by the driver at this time.
Intel driver — KMS
-
LVDS1 — Laptop panel
-
VGA1 — Analog VGA output
-
DVI1 — Digital video output
radeon driver
-
VGA-0 — Analog VGA output
-
LVDS — Laptop panel
-
S-video — Integrated TV output
-
DVI-0 — DVI output
http://www.thinkwiki.org/wiki/Xorg_RandR_1.2
Four methods to setup
- By session with .xprofile.
- Dynamically by using xrandr tool
- Statically by setting in xorg.conf.
- Xrandr Graphical Front End GUI.
xrandr tool (an app component in Xorg) is a command line interface to RandR extension, and can be used to set outputs for a screen dynamically, without any specific setting in xorg.conf. You can refer the xrandr manual for details.
By Session with .xprofile
Use your favorite editor to create ~/.xprofile containing something like:
-
xrandr --output VGA1 --mode 1024x768 --rate 60
Now that command will be run every time your start your Xsession. You can force it to run by logging out and logging back in or by executing ~/.xprofile from your terminal.
Here is an example of my ~/.xprofile. The # are for comments just like you do with shell scripts. The purpose of my setup is sometime have laptop on the left and other times I have my laptop on the right. This makes very simple and easy to change which side you want each monitor to be on. I just added the information on how to set your primary monitor.
-
xrandr --output VGA1 --mode 1024x768 --rate 60 #Laptop right extra Monitor Left #xrandr --output VGA1 --left-of LVDS1 #Laptop left extra Monitor right xrandr --output LVDS1 --left-of VGA1 #This is to set your primary monitor. #This sets your laptop monitor as your primary monitor. xrandr --output LVDS1 --primary #This sets your VGA monitor as your primary monitor. #xrandr --output VGA1 --primary
Some people think it is a disadvantage that this only works for one user, other people think this is an advantage. If you want to be able to use this just copy it over to your profile folder.
Important Note: If you just blindly copy some commands from a website, you may see an error message:
-
xrandr: cannot find mode 1024×768
This may be due to some CMS’ way of modifying content: xrandr expects the letter x and not the multiplication cross × between horizontal and vertical resolution.
Incorrect example:
-
$ xrandr --output VGA1 --mode 1024×768 --rate 60
Corrected example
-
$ xrandr --output VGA1 --mode 1024x768 --rate 60
Dynamic setup with xrandr
Xrandr can be used to change outputs’ mode, rotation direction, position, etc. In this guide, we only introduce options related with dual head setting.
You can see the outputs’ status with option ‘-q’. Below is an example:
-
$ xrandr -q Screen 0: minimum 320 x 200, current 2048 x 768, maximum 4096 x 4096 VGA1 connected 1024x768+1024+0 (normal left inverted right x axis y axis) 338mm x 270mm 1280x1024 60.0 + 75.0 1280x960 75.0 70.0 60.0 1152x864 75.0 70.0 60.0 1024x768 75.1 70.1 66.0 60.0* 832x624 74.6 800x600 72.2 75.0 60.3 56.2 640x480 72.8 75.0 66.7 60.0 720x400 70.1 LVDS1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 304mm x 228mm 1024x768 60.0*+ 800x600 60.3 640x480 59.9 DVI1 disconnected (normal left inverted right x axis y axis) TV1 disconnected (normal left inverted right x axis y axis)
In the above example, two outputs (VGA1 and LVDS1) are connected, the resolution of both is 1024×768@60, output VGA’s viewport is at (1024, 0) and output LVDS’s viewport is at (0, 0), i.e. LVDS1 is located at left of VGA. The size of occupied area by both outputs is 2048×768. The virtual screen size (maximum framebuffer) is 4096 x 4096 which is statically set in xorg.conf (see next section). You can decrease the maximum with ‘—fb’ option but can not increase it. You need make sure your screen size fall into the maximum framebuffer, otherwise you should increase the value in xorg.conf.
There are five xrandr options that can be used to set Dual Monitor:
-
$ xrandr --pos <x>x<y> $ xrandr --left-of <output> $ xrandr --right-of <output> $ xrandr --above <output> $ xrandr --below <output>
The last four will set the output’s relative position to another output, for example:
-
$ xrandr --output VGA1 --left-of LVDS1
Option ‘-pos’ is more flexible which can place output to anywhere, for example:
-
$ xrandr --output VGA1 --pos 200x200 $ xrandr --output LVDS1 --pos 400x500
statically setup in xorg.conf
RandR1.2 configuration in xorg.conf is based on per monitor. So you need write a ‘Monitor’ section for each output and specify these monitors in ‘Device’ section.
Below is a example snippet in xorg.conf.
-
Section "Device" Identifier "Intel 945G " Driver "intel" # Using the name of the output defined by the video driver plus the identifier of a # monitor section, one associates a monitor section with an output by adding an # option to the Device section in the following format: # Option "Monitor-outputname" "monitor ID" Option "monitor-VGA" "foo" Option "monitor-LVDS" "bar" #Option "monitor-TMDS-1" "dvi" EndSection Section "Monitor" Identifier "foo" # specifies a mode to be marked as the preferred initial mode of the monitor # Option "PreferredMode" "800x600" # This optional entry specifies the position of the monitor within the X screen. #Option "Position" "1024 0" #This optional entry specifies that the monitor should be ignored # entirely, and not reported through RandR. This is useful if the # hardware reports the presence of outputs that do not exist. #Option "Ignore" "true" EndSection Section "Monitor" Identifier "bar" #Options LeftOf, RightOf, Above, Below specify monitors' relative position Option "LeftOf" "foo" # This optional entry specifies whether the monitor should be # turned on at startup. By default, the server will attempt to # enable all connected monitors. #Option "Enable" "true" #This optional entry specifies the initial rotation of the given monitor. # Valid values for rotation are "normal", "left", "right", and "inverted". # Option "Rotate" "left" EndSection Section "Screen" Identifier "Default Screen" Device "Intel Corporation 945G Integrated Graphics Controller" Monitor "foo" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1280x1024" "1024x768" "640x480" EndSubSection EndSection
Xrandr Graphical Front End GUI
-
ARandR
-
Grandr
-
LXRandR
-
Urandr
-
zarfy
Not recognised video cards
It is possible, that resolutions higher than 1024×768 (or 800×600.. 640×480) are not avalaible by default, because the videocard isn’t recognised propely. If you can add and apply the desired undetected resolution(s) dinamically with cvt and xrandr, but you get an error after applying static changes to xorg.conf, etc/gdm/init/default, or .xprofile etc. & reboot, something like ‘Stored settings can’t be applied to monitors, any of the selected modes are not compatible with avalaible modes.. trying modes to 79.CRTC..’, than You could try forcing X to recognize the video RAM.
Use your favorite text editor as root: (open a terminal)
-
$ sudo nano /usr/share/X11/xorg.conf.d/99-vesahack
or
-
$ gksudo gedit /usr/share/X11/xorg.conf.d/99-vesahack
and put this in the newly created file:
-
Section "Device" Identifier "Screen0" VideoRam 10000 EndSection
This tells X that there is 10000 kB (~10 MB) of video RAM, enough for 1920×1200 at 4 bytes per pixel. You can replace ‘10000’ above with the amount of avalaible video ram. Save and reboot. (Remove the 99-vesahack file if it doesn’t help.)
Adding undetected resolutions
Due to buggy hardware or drivers, your monitor’s correct resolutions may not always be detected. For example, the EDID data block queried from your monitor may be incorrect.
If the mode already exists, but just isn’t associated for the particular output, you can add it like this:
-
$ xrandr --addmode S-video 800x600
If the mode doesn’t yet exist, you’ll need to create it first by specifying a modeline:
-
$ xrandr --newmode <Mode``Line>
You may create a modeline using the gtf or cvt utility. For example, if you want to add a mode with resolution 800×600 at 60 Hz, you can enter the following command: (The output is shown following.)
-
$ cvt 800 600 60 # 800x600 59.86 Hz (CVT 0.48M3) hsync: 37.35 kHz; pclk: 38.25 MHz Modeline "800x600_60.00" 38.25 800 832 912 1024 600 603 607 624 -hsync +vsync
Then copy the information after the word «Modeline» into the xrandr command:
-
$ xrandr --newmode "800x600_60.00" 38.25 800 832 912 1024 600 603 607 624 -hsync +vsync
After the mode is entered, it needs to be added to the output using the —addmode command as explained above.
Setting xrandr changes persistently
There are several ways to make xrandr customizations permanent from session to session: a) .xprofile, b) kdm/gdm, c) xorg.conf. Each of these mechanisms will be discussed in turn.
Setting xrandr commands in .xprofile
A user’s ~/.xprofile file is executed on Xorg startup if it exists and is executable. You can copy and paste xrandr command line strings into this file so they’re executed when you log in. For example:
-
$ xrandr --output VGA-0 --mode 800x600
There are two disadvantages to using .xprofile for xrandr settings. First, it occurs fairly late in the startup process, so you’ll see some resolution resizing during the initial screen draw; in some cases panel windows may resize improperly as a result. Second, as this is a per-user setting, it won’t affect the resolutions of other users, nor will it alter the resolution on the login screen.
Setting xrandr commands in kdm/gdm startup scripts
Both KDM and GDM have startup scripts that are executed when X is initiated. For GDM, these are in /etc/gdm/ , while for KDM this is done at /etc/kde4/kdm/Xsetup. In either case, you can paste in an xrandr command line string into one of these scripts. For GDM, try putting them right before
-
initctl -q emit login-session-start DISPLAY_MANAGER=gdm
in /etc/gdm/Init/Default.
This process requires root access and mucking around in system config files, but will take effect earlier in the startup process than using .xprofile, and will apply to all users including the login screen.
Setting resolution changes in xorg.conf
While xorg.conf is largely empty these days, it can still be used for setting up resolutions. For example:
-
Section "Monitor" Identifier "External DVI" Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync Option "PreferredMode" "1280x1024_60.00" EndSection Section "Device" Identifier "ATI Technologies, Inc. M22 [Radeon Mobility M300]" Driver "ati" Option "Monitor-DVI-0" "External DVI" EndSection Section "Screen" Identifier "Primary Screen" Device "ATI Technologies, Inc. M22 [Radeon Mobility M300]" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1280x1024" "1024x768" "640x480" EndSubSection EndSection Section "ServerLayout" Identifier "Default Layout" Screen "Primary Screen" EndSection
See man xorg.conf for full details on how to craft an xorg.conf file.
Setting resolution changes in xorg.conf — resolution lower than expected
Try this first
If you video card is recognized but the resolution is lower than you expect, you may try this.
Background: I use Ubuntu 9.0.4 x86, ATI X1550 based video card and two LCD monitors DELL 2408(up to 1920×1200) and Samsung 206BW(up to 1680×1050). Upon first login after installation, the resolution default to 1152×864. xrandr does not list any resolution higher than 1152×864. You may want to try editing /etc/X11/xorg.conf, add a section about virtual screen, logout, login and see if this helps. If not then read on.
Change the default xorg.conf
-
Section "Device" Identifier "Configured Video Device" EndSection Section "Monitor" Identifier "Configured Monitor" EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" EndSection
To:
Section "Monitor" Identifier "Configured Monitor" EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" -> SubSection "Display" -> Virtual 3600 1200 -> EndSubSection EndSection Section "Device" Identifier "Configured Video Device" EndSection
About the numbers: I put DELL on the left and Samsung on the right. So the virtual width is of sum of both LCD width 3600=1920+1680; Height then is figured as the max of them, which is max(1200,1050)=1200. If you put one LCD above the other, use this calculation instead: (max(width1, width2), height1+height2).
If that does not help, here’s what I did:
Use cvt/xrandr tool to add the highest mode the LCD can do
The actual order was different, as I tried to add new mode to one LCD at a time. Below is the combined/all-in-one quote
-
aa@aa-desktop:/$ cvt 1920 1200 60 # 1920x1200 59.88 Hz (CVT 2.30MA) hsync: 74.56 kHz; pclk: 193.25 MHz Modeline "1920x1200_60.00" 193.25 1920 2056 2256 2592 1200 1203 1209 1245 -hsync +vsync aa@aa-desktop:/$ cvt 1680 1050 60 # 1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.29 kHz; pclk: 146.25 MHz Modeline "1680x1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync aa@aa-desktop:/$ xrandr --newmode "1920x1200_60.00" 193.25 1920 2056 2256 2592 1200 1203 1209 1245 -hsync +vsync aa@aa-desktop:/$ xrandr --newmode "1680x1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync aa@aa-desktop:/$ xrandr --addmode DVI-1 "1920x1200_60.00" aa@aa-desktop:/$ xrandr --addmode DVI-0 "1680x1050_60.00"
Change one of the LCD’s resolution to a lower one, e.g. 800×600. Apply change, then (I don’t remember the exact order/wording here:) hopefully the GUI will give you a prompt saying something like «the resolution can be improved but virtual screen has to be enabled, you need to however logout and log back in». I did it and on 2nd login, I am able to find the higher resolution listed for that LCD. After that I follow suite and make similar change to 2nd LCD and am able to get both of them working.
Obtaining modelines from Windows program PowerStrip
X.Org Wiki has an article about this.
Разрешение вашего монитора/экрана означает четкость содержимого (текста и изображений), которое вы можете просматривать на экране. Если экран установлен на более высокое разрешение, например 1366×768, содержимое, отображаемое на экране, будет более четким. Вы также можете заметить, что при высоком разрешении элементы на экране выглядят меньше; это происходит для того, чтобы на экране поместилось больше элементов. С другой стороны, низкое разрешение означает менее четкое изображение, при котором элементы выглядят крупнее и, соответственно, меньше. Если у вас монитор большего размера, он поддерживает более высокое разрешение. Ваша видеокарта также играет большую роль в способности вашей системы поддерживать большое разрешение экрана.
Эта статья поможет вам настроить разрешение экрана в системе Ubuntu. Мы будем использовать командную строку для изменения разрешения. Всегда есть способ сделать почти все наши вещи прямо в Терминале. Так почему же изменение разрешения экрана должно быть иным! Использование Терминала делает некоторые задачи более эффективными и даже быстрыми. Инструменты командной строки не используют слишком много ресурсов и поэтому являются отличной альтернативой широко используемым графическим приложениям, особенно если у вас устаревшее оборудование.
Изменение разрешения экрана через командную строку
Чтобы изменить разрешение экрана в системе Ubuntu, выполните следующие действия:
Откройте приложение Терминал либо с помощью сочетания клавиш Ctrl+Alt+T, либо через поиск приложений в пусковой установке следующим образом:
Утилита Xrandr (компонент приложения Xorg) представляет собой интерфейс командной строки для расширения RandR и может быть использована для динамической установки разрешения экрана без каких-либо специальных настроек в xorg.conf.
Мы будем использовать следующий флаг утилиты xrandr для настройки размера экрана:
- -s
- —size [индекс]
- —size [ШиринаXВысота]
Это устанавливает размер экрана, либо подбирая его по размеру, либо используя индекс в списке доступных размеров.
Это одна из двух команд, которые вы можете использовать:
Например:
Использование команды xrandr
xrandr —size [ШиринаXВысота]
Например:
Установка размера экрана с помощью команды xrandr
С помощью этого простого инструмента, который уже установлен в Ubuntu, вы можете настроить разрешение экрана прямо из командной строки. Настроить разрешение экрана через пользовательский интерфейс также возможно. Все, что вам нужно сделать, это использовать вкладку Devices>Displays в утилите Settings, чтобы вручную установить разрешение в соответствии с вашими требованиями.
xrandr is an official configuration utility to the RandR (Resize and Rotate) X Window System extension. It can be used to set the size, orientation or reflection of the outputs for a screen. For configuring multiple monitors see the Multihead page.
Installation
Install xorg-xrandr.
Graphical front-ends
- ARandR — Simple visual front end for XRandR. Relative monitor positions are shown graphically and can be changed in a drag-and-drop way.
- https://christian.amsuess.com/tools/arandr/ || arandr
- LXRandR — Screen resolution and monitor position tool for LXDE. Also works in Openbox.
- https://wiki.lxde.org/en/LXRandR[dead link 2022-09-23 ⓘ] || GTK 2: lxrandr, GTK 3: lxrandr-gtk3
CLI front-ends
- autorandr — Automatically select a display configuration based on connected devices.
- https://github.com/phillipberndt/autorandr || autorandr
- xlayoutdisplay — Detects and arranges displays. Handles: laptop lid state, highest available refresh rates, calculating and applying the actual DPI. Best used in .xinitrc, then can be invoked when plugging/unplugging monitors or closing laptop lid.
- https://github.com/alex-courtis/xlayoutdisplay || xlayoutdisplayAUR
Testing configuration
When run without any option, xrandr shows the names of different outputs available on the system (VGA-1
, HDMI-1
, etc.) and resolutions available on each, with a * after the current one and a + after the preferred one :
xrandr
Screen 0: minimum 320 x 200, current 3200 x 1080, maximum 8192 x 8192 VGA-1 disconnected (normal left inverted right x axis y axis) HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 531mm x 299mm 1920x1080 59.93 + 60.00* 50.00 59.94 1920x1080i 60.00 50.00 59.94 1680x1050 59.88 …
Note: If your resolution is not present in the above list, see #Adding undetected resolutions
You can use xrandr to set different resolution (must be present in the above list) on some output:
$ xrandr --output HDMI-1 --mode 1920x1080
When multiple refresh rates are present in the list, it may be changed by the --rate
option, either at the same time or independently. For example:
$ xrandr --output HDMI-1 --mode 1920x1080 --rate 60
The --auto
option will turn the specified output on if it is off and set the preferred (maximum) resolution:
$ xrandr --output HDMI-1 --auto
It is possible to specify multiple outputs in one command, e.g. to turn off HDMI-1
and turn on HDMI-2
with preferred resolution:
$ xrandr --output HDMI-1 --off --output HDMI-2 --auto
Note:
- Changes you make using xrandr will only last through the current session.
- xrandr has a lot more capabilities — see xrandr(1) for details.
Configuration
xrandr is just a simple interface to the RandR extension and has no configuration file. However, there are multiple ways of achieving persistent configuration:
- The RandR extension can be configured via X configuration files, see Multihead#RandR for details. This method provides only static configuration.
- If you need dynamic configuration, you need to execute xrandr commands each time X server starts. See Autostarting#On Xorg startup for details. This method has the disadvantage of occurring fairly late in the startup process, thus it will not alter the resolution of the display manager if you use one.
- Custom scripts calling xrandr can be bound to events (for example when external monitor is plugged in), see udev or acpid for details. The #Scripts section provides you with some example scripts that might be useful for this purpose.
Tip: Both GDM and SDDM have startup scripts that are executed when X is initiated. For GDM, these are in /etc/gdm/
, while for SDDM this is done at /usr/share/sddm/scripts/Xsetup
. This method requires root access and mucking around in system configuration files, but will take effect earlier in the startup process than using xprofile.
Scripts
Toggle external monitor
This script toggles between an external monitor (specified by $extern
) and a default monitor (specified by $intern
), so that only one monitor is active at a time.
The default monitor should be connected when running the script, which is always true for a laptop.
#!/bin/sh intern=LVDS1 extern=VGA1 if xrandr | grep "$extern disconnected"; then xrandr --output "$extern" --off --output "$intern" --auto else xrandr --output "$intern" --off --output "$extern" --auto fi
Note: To leave the default monitor enabled when an external monitor is connected, replace the else clause with xrandr --output "$intern" --primary --auto --output "$extern" --right-of "$intern" --auto
.
Manage 2-monitors
monsAUR is a POSIX-compliant shell script to quickly manage 2-monitors display.
It provides well-known modes like computer, duplicate, extend and projector mode as well as selecting and positioning one or two monitors among those plugged in (for more details, see mons).
Avoid X crash with xrasengan
Use this workaround to turn on connected outputs that may be in suspend mode and hence shown as disconnected, as is often the case of DisplayPort monitors:
declare -i count=2 declare -i seconds=1 while ((count)); do xrandr >/dev/null sleep $seconds ((count--)) done
xrasenganAUR is an xrandr wrapper with this workaround built in.
$ xrasengan --force -on DisplayPort-0 -off HDMI-0
With the --force
option, xrasengan will update status of all outputs before HDMI-0 is turned off, avoiding an X crash if they were the only connected/active outputs.
To force reload current settings, xrasengan provides a --try-reload-active-layout
option, which uses --force
and unxrandr from the arandr package to assemble the command line:
$ xrasengan --try-reload-active-layout
This can be used in systemd unit or in a keyboard binding to avoid blank screen when resuming DisplayPort monitors from suspend.
Configuration using arandr
arandr can graphically arrange your monitors, change resolutions, and save a script to duplicate your setup. By default, if you «Save As» it will be saved in ~/.screenlayout/
. These files can then be autostarted. Sometimes problems arise from running the arandr script too soon after login, add a sleep
command if needed.
Troubleshooting
Screen Blinking
For some LCD screens (e.g. Samsung 2343NW, Acer XB280HK and Iiyama ProLite XUB3490WQSU-B1) the command cvt -r
can be used to calculate standardized modelines with reduced blanking, allowing for higher frequency signals.
For example: an external monitor ProLite XUB3490WQSU-B1 connected to a Dell laptop through a Thunderbolt-HDMI 2.0 adapter, using 59.97Hz refresh rate with a blinking problem:
Calculating the reduced modelines for the desired resolution cvt -r 3440 1440
gives:
# 3440x1440 59.97 Hz (CVT) hsync: 88.82 kHz; pclk: 319.75 MHz
Modeline "3440x1440R" 319.75 3440 3488 3520 3600 1440 1443 1453 1481 +hsync -vsync
With this information we can use xrandr to create a new mode:
xrandr --newmode "3440x1440R" 319.75 3440 3488 3520 3600 1440 1443 1453 1481 +hsync -vsync
And add it to the set of valid modes for the corresponding output to make it selectable:
xrandr --addmode DP1 3440x1440R
Adding undetected resolutions
Due to buggy hardware or drivers, your monitor’s correct resolutions may not always be detected by xrandr. For example, the EDID data block queried from the monitor may be incorrect. To fix this at a low level, see Kernel mode setting#Forcing modes and EDID. This section will describe how to address this at a higher level by adding the desired resolutions to xrandr. This same procedure can be used to add refresh rates you know are supported, but not enabled by your driver.
First we run gtf
or cvt
to get the Modeline for the resolution we want:
$ cvt 1280 1024
# 1280x1024 59.89 Hz (CVT 1.31M4) hsync: 63.67 kHz; pclk: 109.00 MHz Modeline "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
Tip:
- If you find that the screen goes blank when the modeline is applied, try lower refresh rate (e.g. 30 or 45 instead of 60). The refresh rate should be passed as the third argument:
cvt 2560 1440 45
.
Note: If the Intel video driver (xf86-video-intel) is used, it may report the desired resolution along with its properties in /var/log/Xorg.0.log
— use that first if it is different from the output of gtf
or cvt
. For instance, the log and its use with xrandr:
[ 45.063] (II) intel(0): clock: 241.5 MHz Image Size: 597 x 336 mm [ 45.063] (II) intel(0): h_active: 2560 h_sync: 2600 h_sync_end 2632 h_blank_end 2720 h_border: 0 [ 45.063] (II) intel(0): v_active: 1440 v_sync: 1443 v_sync_end 1448 v_blanking: 1481 v_border: 0
$ xrandr --newmode "2560x1440" 241.50 2560 2600 2632 2720 1440 1443 1448 1481 -hsync +vsync
An example for the AMDGPU video driver (xf86-video-amdgpu):
[ 95.798] (II) AMDGPU(0): Printing DDC gathered Modelines: [ 95.798] (II) AMDGPU(0): Modeline "1920x1080"x0.0 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)
$ xrandr --newmode "1920x1080"x0.0 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Then we create a new xrandr mode. Note that the Modeline keyword needs to be omitted.
$ xrandr --newmode "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
Tip: Some programs have trouble recognizing modes labeled with «_60.00» see [1]
After creating it we need an extra step to add this new mode to our current output (VGA1). We use just the name of the mode, since the parameters have been set previously.
$ xrandr --addmode VGA1 1280x1024_60.00
Now we change the resolution of the screen to the one we just added:
$ xrandr --output VGA1 --mode 1280x1024_60.00
Note that these settings only take effect during this session.
If you are not sure about the resolution you will test, you may add a sleep 5
and a safe resolution command line following, like this:
$ xrandr --output VGA1 --mode 1280x1024_60.00 && sleep 5 && xrandr --newmode "1024x768-safe" 65.00 1024 1048 1184 1344 768 771 777 806 -HSync -VSync && xrandr --addmode VGA1 1024x768-safe && xrandr --output VGA1 --mode 1024x768-safe
Also, change VGA1
to correct output name.
EDID checksum is invalid
If the previous method results in an *ERROR* EDID checksum is invalid
error during boot, see KMS#Forcing modes and EDID and [2].
Or xrandr --addmode
might give you the error X Error of failed request: BadMatch
. NVIDIA users should read NVIDIA/Troubleshooting#xrandr BadMatch. BadMatch
could indicate an invalid EDID checksum. To verify that this is the case, run X in verbose mode (e.g. startx -- -logverbose 6
) and check your Xorg log for messages about a bad EDID.
Screen resolution reverts back after a blink
If you use GNOME and your monitor does not have an EDID, above #Adding undetected resolutions might not work, with your screen just blinking once, after xrandr --output
.
Poke around with ~/.config/monitors.xml
, or delete the file completely, and then reboot.
It is better explained in this article.
Permanently adding undetected resolutions
Once a suitable resolution is found using xrandr
, the mode can be permanently added by creating an entry in /etc/X11/xorg.conf.d/
:
/etc/X11/xorg.conf.d/10-monitor.conf
Section "Monitor" Identifier "VGA1" Modeline "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync Option "PreferredMode" "1280x1024_60.00" EndSection Section "Screen" Identifier "Screen0" Monitor "VGA1" DefaultDepth 24 SubSection "Display" Modes "1280x1024_60.00" EndSubSection EndSection Section "Device" Identifier "Device0" Driver "intel" EndSection
Replace intel
with the right driver, e.g. nvidia
. When the X server is restarted, you should be able to set the new resolution.
If this does not work for you, try removing the Screen and Device sections and just leaving the Monitor section. [3]
Resolution lower than expected
Tip: Try #Adding undetected resolutions first, if it does not work, you may try this method.
If your video card is recognized but the resolution is lower than you expect, you may try this.
Background: ATI X1550 based video card and two LCD monitors DELL 2408(up to 1920×1200) and Samsung 206BW(up to 1680×1050). Upon first login after installation, the resolution default to 1152×864. xrandr does not list any resolution higher than 1152×864. You may want to try editing /etc/X11/xorg.conf, add a section about virtual screen, logout, login and see if this helps. If not then read on.
Change xorg.conf
/etc/X11/xorg.conf
Section "Screen" ... SubSection "Display" Virtual 3600 1200 EndSubSection EndSection
About the numbers: DELL on the left and Samsung on the right. So the virtual width is of sum of both LCD width 3600=1920+1680; Height then is figured as the max of them, which is max(1200,1050)=1200. If you put one LCD above the other, use this calculation instead: (max(width1, width2), height1+height2).
Setting resolution from .xinitrc doesn’t work
DDX drivers other than that of the modesetting(4) driver may take time to properly enumerate the modes of attached devices, to where xrandr may not work right away. This seems to be the case for the xf86-video-intel driver, with which using xrandr early in the startup sets the incorrect resolution. Possible remedies include:
- Waiting for a couple of seconds before invoking xrandr:
~/.xinitrc
... { sleep 2; xrandr xrandr_parameters } & ...
This does the waiting in the background, as to not block the rest of the startup. If this not desirable, e.g. your window manager configuration depends on the display being arranged correctly, you can execute the commands in the foreground:
~/.xinitrc
... sleep 2 xrandr xrandr_parameters ...
- Setting the mode in a later part of the desktop startup. Refer to your window manager documentation for details on startup script functionality.
- Switching to the generic modesetting driver. This is most easily done by uninstalling the device specific DDX driver. In the case of xf86-video-intel, the driver has other deficiencies that may benefit from this; see Intel graphics#Installation for more information.
Correction of overscan tv resolutions via the underscan property
With a flat panel TV, w:overscan looks like the picture is «zoomed in» so the edges are cut off.
Check your TV if there is a parameter to change. If not check if the output has support for the underscan property (xrandr —prop), if so apply an underscan
and change border values.
The required underscan vborder
and underscan hborder
values can be different for you, just check it and change it by more or less.
$ xrandr --output HDMI-0 --set underscan on --set "underscan vborder" 25 --set "underscan hborder" 40
Correction of overscan tv resolutions via —transform
If underscan is not available another solution is using xrandr --transform a,b,c,d,e,f,g,h,i
, which applies a transformation matrix on the output. See the xrandr(1) § RandR_version_1.3_options manual page for the explanation of the transformation.
For example, the transformation scaling horizontal coordinates by 0.8
, vertical coordinates by 1.04
and moving the screen by 35 pixels right and 19 pixels down, is:
$ xrandr --output HDMI1 --transform 0.80,0,-35,0,1.04,-19,0,0,1
Disabling phantom monitor
In some cases, a non-existent monitor may be detected by the system. To disable it, find the name of the phantom output, e.g. VGA1, and turn it off with
$ xrandr --output VGA1 --off
To make this permanent, add the following to an entry in /etc/X11/xorg.conf.d/
:
/etc/X11/xorg.conf.d/10-monitor.conf
Section "Monitor" Identifier "VGA1" Option "Ignore" "true" EndSection
Dynamic interlace pattern artifacts with AOC G2590PX
If you are seeing very prominent interlace pattern artifacts (mesh or grid) when you see movement on the screen with this monitor, it might be happening because of a low refresh rate. Switching to a higher refresh rate (from 60 Hz to 119.98 Hz and perhaps even higher) might help reduce the effect.
Sample xrandr output for this monitor over HDMI:
HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 544mm x 303mm 1920x1080 60.00 + 119.98* 99.93 50.00 59.94
As can be seen in the output above, the preferred refresh rate reported by xrandr is 60.00, but the artifacts are very visible with this refresh rate. Switching to 119.98 should help reduce the effect considerably.
$ xrandr --output HDMI-1 --mode 1920x1080 --rate 119.98
See also
- https://wiki.ubuntu.com/X/Config/Resolution
- Debian Wiki — RandR 1.2 tutorial
- Xorg RandR 1.2 on ThinkWiki
- FAQVideoModes — more information about modelines
Главная » Linux » Ubuntu » Два способа изменить разрешение экрана в Ubuntu 22.04 / 20.04
Содержание
- Как изменить разрешение экрана в Ubuntu 22.04 / 20.04
- Способ 1: Использование графического интерфейса пользователя
- Способ 2: Изменение разрешения экрана в Ubuntu с помощью терминала
- Заключение
Общаясь с друзьями, которые только что установили Linux, я заметил, что такая простая вещь, как изменение разрешения экрана, может быть немного сложной. Поэтому в этом посте вы узнаете, как изменить разрешение экрана в Ubuntu из графического интерфейса, так и из терминала.
Многие новички переходят на Linux и в частности в ОС Ubuntu и соответственно теряются. Но со временем они понимают, что Ubuntu проще и интуитивно понятнее, чем другие системы. Но не только это, Ubuntu еще и довольно гибкая. Так как вы можете менять разрешение экрана как через графический интерфейс, так и из терминала.
Как изменить разрешение экрана в Ubuntu 22.04 / 20.04
Способ 1: Использование графического интерфейса пользователя
Обычно новичкам не нравится терминал, поэтому мы начнем с графического интерфейса, которым является GNOME. Эта современная графическая среда имеет все необходимые опции, поэтому вы ничего не пропустите.
Сначала откройте главное меню и наберите Settings (Настройки). Затем откройте системные опции.
Теперь перейдите в раздел Displays (Дисплеи) и в нем вы увидите настройку Resolution (Разрешение).
В раскрывающемся списке вы увидите разрешения, совместимые с вашим экраном. Это также зависит от установленной видеокарты и драйвера. Поэтому, если соответствующее разрешение экрана не отображается, это связано с проблемой драйвера или его совместимости.
Далее вам нужно выбрать нужное разрешение.
Если вы удовлетворены и вам все нравится, то сохраните изменения и все.
Способ 2: Изменение разрешения экрана в Ubuntu с помощью терминала
Вы можете выполнить этот процесс с помощью терминала. Это просто, благодаря инструменту xrandr. С помощью этого инструмента можно быстро настроить экран.
Для вас это может показаться не очень полезным, но в будущем это может пригодиться в скриптах конфигурации или других ситуациях.
По умолчанию этот пакет установлен в Ubuntu 22.04, поэтому вам не придется много делать.
Откройте терминал из главного меню и выполните следующую команду.
xrandr
Вы получите на выходе следующее окно.
Из этого экрана вы получите важную информацию о конфигурации монитора. В данном случае она показывает минимально допустимое разрешение, текущее разрешение и максимально допустимое разрешение.
Вы также увидите информацию о портах и поддерживаемых разрешениях экрана.
Обратите внимание, что в этом выводе дисплея псевдоним монитора — DP-1. Вы быстро узнаете его, так как на нем написано connected и показано активное разрешение.
Чтобы изменить разрешение на основном мониторе, вам требуется выполнить следующую команду.
xrandr --output [monitor-alias] --mode [resolution]
Например работающей команду.
xrandr --output DP-1 --mode 800x600
Изменения будут происходить автоматически.
Заключение
Это был короткий пост, с его помощью вы узнали, как изменить разрешение экрана в Ubuntu, используя графический интерфейс и терминал. Надеюсь, вам понравилось.
Линукс стал проще в настройках. Как и в Windows, различные проблемы здесь можно решить с помощью разных вариантов. Есть несколько способов изменить разрешение экрана в Ubuntu:
- через графический интерфейс;
- посредством терминала.
Особенности настройки разрешения экрана в Ubuntu
Новичкам, установившим Linux, удобней изменить настройку яркости экрана при помощи кнопки «Параметры системы» , которая находится в левой панели рабочего стола.
Под этой иконкой собрано большинство необходимых настроек для корректной работы ОС. Необходимо нажать на нее, далее – на параметр «Настройка экранов», в котором нужно выбрать с левой стороны строки «Разрешение» требуемые цифры и нажать «Ок» для вступления изменений в силу.
Оценить конфигурацию можно в течение 30 секунд, после чего система вернется в первоначальное состояние. Это же произойдет при нажатии кнопки «Восстановить исходную конфигурацию».
Как изменить разрешение экрана в Ubuntu
Второй способ – изменить настройки через терминал. Если соответствующего знака нет в левой панели рабочего стола, тогда иконку необходимо найти, а после перетащить терминал на левую панель.
Затем его открывают и выполняют следующие действия:
- xrandr – эта команда покажет, какие в системе есть доступные разрешения. Тот вариант, который установлен в данный момент, будет обозначен как «VGA-1 connected primary 1920×975+0+0». В конкретном случае цифры могут быть другие.
- Подставляют свои параметры, которые хотят изменить, и узнают, способна ли операционная система предоставить эту возможность: вводят команду: cvt 1280×960 60.
- После вывода результатов операции копируют строку после слова Modeline: «1280x960_60» 6.25 1280 1320 1440 1600 60 63 73 76 -hsync +vsync.
- Приведенное значение вставляют после команды: xrandr —newmode «1280x960_60» 6.25 1280 1320 1440 1600 60 63 73 76 -hsync +vsync.
- Добавление интерфейса к выбранному разрешению. Для этого нужно написать следующую команду: xrandr —addmode VGA-1 1280x
- Устанавливают выбранное разрешение еще одной командой: xrandr —output VGA-1 —mode 1280x
- Создают скрипт, который будет запускать нужный вариант: сначала папку с именем .bin, затем – файл, например, screen.sh.
- Прописать этот файл (созданный скрипт) в перезагрузку, чтобы данное разрешение корректно работало.
-
В терминале добавляют к файлу автозагрузки: sudo gedit /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf.
- В этот файл необходимо внести одну строку:
display-setup-script=/home/al/.bin/screen.sh – путь к нужному файлу screen.sh.
После перезагрузки требуемое разрешение будет доступно, им можно пользоваться.
Как изменить яркость экрана ноутбука в Ubuntu
Важно! Эти способы подходят лишь для ОС семейства Ubuntu. Хоть она является похожей по принципам на Debian, все же регулирование яркости экрана Linux и Debian может значительно различаться.
Достаточно лишь скорректировать один пакет (программу), а затем обновить систему. Отрегулировать параметры можно при помощи установленного пакета для регулировки яркости ноутбука Ubuntu. Сделать это можно тремя операциями из терминала:
- добавление репозитория для скачивания пакета: sudo add-apt-repository ppa:indicator-brightness/ppa;
- обновление системы для того, чтобы подхватились зависимости: sudo apt-get update;
- загрузка и установка самого пакета: sudo apt-get install indicator-brightness.
Если данный способ не подошел, необходимо провести более тщательную настройку. Есть еще один метод, через редактирование файла grub:
- открывают терминал, вписывают команду: sudo gedit /etc/default/grub;
- затем необходимо найти следующую строку: GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”;
- а после нужно заменить на такую: GRUB_CMDLINE_LINUX_DEFAULT=»quiet splash acpi_backlight=vendor»;
- далее необходимо обновить grub: sudo update-grub.
Такой способ вполне может помочь в том, чтобы изменить настройки. После этих действий, зажав клавишу Fn и нажимая стрелки вверх/вниз или те кнопки, где нарисованы иконки яркости, ее можно уменьшить или увеличить.
Важно! Что касается других дистрибутивов, то, например в Linux mint, яркость экрана возможно изменить аналогичными способами. Так как операционная система Ubuntu является близкой по параметрам.
Заключение
Задача изменить разрешение экрана в Ubuntu, некоторым пользователям кажется непреодолимой. Но она решаемая несколькими методами. В основе Linux mint – Ubuntu, поэтому действия будут схожими.
Проблема с разрешениеv монитора в Linux (Ubuntu)
Когда я поставил себе Ubuntu, то первой серьезной проблемой было разрешение моего монитора: ubuntu никик не хотела понимать, что мой моник (Acer AL1916W) крут и его рабочее разрешение — это 1440×900, а не 1024×768.
Да, такое бывает часто. Слава Богу, Что эту проблему достаточно просто решить. В данной статье мы рассмотрим
- Как изменить текущее разрешение монитора на новое из командно строки?
- Как добавить новое разрешение для монитора?
- Как сохранить новое разрешение для монитора?
Изменение разрешения монитора в Linux
Для того чтобы посмотреть, на что вообще способны по мнению Linux ваши мониторы (или монитор, если он один), нужно выполнить команду xrandr из консоли (Ctrl+Alt+T):
xrandr
В результате вы получите что-то типа такого (у меня 2 монитора):
Вы можеет увидеть здесь два видеовыхода: DVI-0 и VGA-0, а ниже доступные разрешения для каждого из мониторов на этих видеовыходах. У вас выходы могут называться по разному: LVDS1 — экран ноутбука, VGA1 — экран, подключаемый через VGA, DVI1 — экран, подключаемый через DVI, HDMI — экран, подключенный через HDMI.
итак, если нужное вам разрешение присутствует в списке разрешений для вашего монитора, то применить его можно очень просто: xrandr —output Название_выхода —mode Режим. В моем случае команда будет выглядеть так:
xrandr --output DVI-0 --mode 1280x1024
Вуаля, на вашем мониторе уже должно смениться разрешение
Добавление нового разрешения монитора в Linux
А что же делать, если нужного нам разрешения нет в предлагаемых? А вот что: можно просто добавить необходимое разрешение вручную. Для этого найдите характеристики вашего монитора и посмотрите, какое разрешение он поддерживает и на какой частоте. ВНИМАНИЕ! Если вы укажите частоту, на которой монитор работать не может, то потеряете графический интерфейс вашего Linux’а.
Ну к примеру, мы выяснили, что монитор Acer AL1916W отлично работает с разрешением 1440×900 на частоте в 60Гц. Давайте сгенерим для него так называемый конфиг командой cvt:
cvt 1440 900 60
Вывод команды будет таким:
Отсюда нам нужна вторая строчка, а именно все, что находится после «Modeline»:
«1440x900_60.00» 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
Далее мы создаем принципиально новый режим:
xrandr --newmode "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
Осталось только привязать только что созданный режим к нужному монитору. Помните, в начале статьи мы смотрели, на каком выходе какой из мониторов? Привязка режима к конкретному монитору (выходу) делается так:
xrandr --addmode VGA-0 1440x900_60.00
xrandr --output VGA-0 --mode 1440x900_60.00
Ну вот, ваш монитор погас, включился и вы уже довольны
Добавление новой конфигурации монитора в автозагрузку
Да да да, вы спросите, и что, делать это каждый раз, когда запускается компьютер?
Нет, каждый раз делать этого не надо: просто не выключайте свой комп Шучу. Можно просто добавить эту конфигурацию в автозагрузку, и Linux сам будет все это прекрасно делать при запуске. Как? Давайте по шагам:
Ну на будущее лучше создать в домашнем каталоге папку «.bin», в которой будут храниться все исполняемые скрипты (поверьте, пригодится). Ну и сразу перейдем в эту папку:
cd ~
mkdir .bin
cd .bin
В папке создадим файл, назовем его, к примеру, load_screen.sh:
touch load_screen.sh
Открываем файл и добавляем в него все наши команды по созданию и добавлению режима монитора. Открыть файл:
nano load_screen.sh
Содержимое файла (для монитора, о котором идет речь в этой статье):
#!/bin/bash
xrandr --newmode "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
xrandr --addmode VGA-0 1440x900_60.00
xrandr --output VGA-0 --mode 1440x900_60.00
Закрываем (Ctrl+X) и сохраняем. Теперь нам надо на файл выставить права, чтоб его можно было выполнять, как команду:
chmod +x load_screen.sh
Ну и осталось добавить его в так называемый автозапуск.
Для Ubuntu c 12.04 до 13.10 надо править следующий файл: /etc/lightdm/lightdm.conf, для Ubuntu 14.04 и выше — /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf. Итак, открываем файл:
sudo nano /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf
И в конец файла дописываем путь к нашему исполняемому скрипту. В итоге, файл 50-unity-greeter.conf у меня выглядит так (не забудьте, что имя пользователя у вас точно другое):
[SeatDefaults]
greeter-session=unity-greeter
display-setup-script=/home/krut1/.bin/load_screen.sh
Всё! После перезагрузки разрешение монитора у вас уже должно сразу примениться. Ставьте лайки, друзья, если этот матриал был для вас полезен
Как сменить разрешение дисплея из командной строки Linux
Если разрешение изображения на экране не соответствует паспортному разрешению дисплея, можно изменить разрешение при помощи командной строки.
На работе на ПК с операционной системой Linux Mint 19.3 имею широкоформатный дисплей с разрешением 1366 на 768 пикселей. Однажды загрузил компьютер с отключенным дисплеем и установилось разрешение 1024 на 768. Каким-то образом, это разрешение запомнилось и изображение стало растянутым.
Запуск диагностики основного дисплея выдал:
xrandr -d :0 -q
Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
VGA1 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1024x768 60.00*
800x600 60.32 56.25
848x480 60.00
640x480 59.94
Как видно, разрешение 1024×768 выбрано системой, помечено символом звёздочка*.
Решение проблемы
-
Узнать модель дисплея (наклейка на задней крышке) — по модели установить максимально поддерживаемое разрешение.
В данном случае 1366 на 768 px при частоте обновления 60 Гц. -
Выполнить команду cvt с параметрами, соответствующими разрешению и частоте обновления:
cvt 1366 768 60
В моём случае было выведено следующее:
# 1368x768 59.88 Hz (CVT) hsync: 47.79 kHz; pclk: 85.25 MHz
Modeline "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
-
Надо взять строчку и подать на вход xrandr, чтобы создать новый режим:
xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
-
Узнать название дисплея — выводится командой xrandr:
xrandr -d :0 -q
в моём случае VGA1
- Добавить дисплею новый, ранее созданный режим:
xrandr --addmode VGA1 1368x768_60.00
- Наконец, выполнил команду для изменения разрешение изображения (перевода дисплея в новый режим «1368x768_60.00»):
sudo xrandr --output VGA1 --mode 1368x768_60.00
Дисплей может мигать и погаснуть. Если все пошло хорошо, изображение станет выбранного разрешения.
Если нужно, выполнить восстановление разрешения на 1024×768:
несколько раз нажимаем Enter и вводим в командную строку следующую команду
sudo xrandr --output VGA1 --mode 1024x768
Если нужно, повторяем смену режима дисплея:
xrandr --output VGA1 --mode 1368x768_60.00
нажать «Enter»
Ввод пароля sudo каждый раз не требуется.
Дополнение для монитора с разрешением 1280×1024:
cvt 1280 1024 60
xrandr --newmode "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
xrandr --addmode VGA-1 1280x1024_60.00
sudo xrandr --output VGA-1 --mode 1280x1024_60.00
Постоянная установка разрешения дисплея при входе в Linux
Я прописал следующие три команды в исполнимый файл.
Вначале создал пустой файл в домашней папке
nano resolution.sh
И вставил в него 4 строки текста:
#!/bin/bash
xrandr --newmode "1368x768_60" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode VGA1 1368x768_60
xrandr --output VGA1 --mode 1368x768_60
Сохранил файл.
Такой же файл, но для монитора 1280×1024 прилагаю:
resolution.sh.zip
Дал права — выполнение только от текущего пользователя (владельца).
sudo chmod 700 resolution.sh
Добавил в автозагрузку (у меня оболочка LXQT):
Пуск — Параметры — Настройки LXQT — Настройки сеанса — Autostart — Add
sh /home/vladimir/resolution.sh.
Подтвердил и закрыл окно.
Другой вариант — добавить команды в файл в домашнем каталоге пользователя .xinitrc:
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_DATA_DIRS=/usr/share/openbox:/usr/local/share/:/usr/share/
xrandr --newmode "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
xrandr --addmode VGA-1 1280x1024_60.00
xrandr --output VGA-1 --mode 1280x1024_60.00
Вышел и вошел в систему, чтобы проверить. При входе дисплей мигнул и правильное разрешение дисплея применилось.
Также, командный файл resolution.sh можно запускать из окна Терминала.
Случай HDMI подключения и нескольких мониторов
В отличие от рассмотренного выше подключения через VGA-кабель, при использовании нескольких мониторов, подключенных через интерфейсы HDMI, синтаксис команды другой:
xrandr --newmode DVI-I-1 mode_name1 ...
xrandr --newmode DVI-I-2 mode_name2 ...
xrandr --addmode DVI-I-1 mode_name1
xrandr --addmode DVI-I-2 mode_name2
xrandr --output DVI-I-1 --mode mode_name1
xrandr --output DVI-I-2 --mode mode_name1
Названия интерфейсов мониторов можно получить при помощи той же команды
xrandr -q
Источники:
- https://askubuntu.com/questions/281509/…
- форум linuxmint.com