Разрешение экрана линукс команда

How can I get the monitor resolution using the command line?

I would like to find a wallpaper that best suits my resolution. How can I get the resolution just by writing commands in the command line?

10 Answers 10

xdpyinfo | grep dimensions 

Or to get just the resolution:

xdpyinfo | grep -oP 'dimensions:\s+\K\S+' 

It works for a single monitor setup but with two monitors it sums both dimensions, for me my two screens return: 3520×1200 pixels

Good point. On the other hand, this is still useful if he’s searching for a single wallpaper to be spanned over all monitors.

@Jos, I get it this command would return 4000×1000, that is, it puts both monitors next to each other. For example, Sylvain has two monitors (1600×900 and 1920×1200) and he gets 3520×1200.

$ xrandr Screen 0: minimum 320 x 200, current 3520 x 1200, maximum 32767 x 32767 LVDS1 connected 1600x900+1920+0 (normal left inverted right x axis y axis) 310mm x 174mm 1600x900 60.0*+ 1440x900 59.9 1360x768 59.8 60.0 1152x864 60.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 connected primary 1920x1200+0+0 (normal left inverted right x axis y axis) 518mm x 324mm 1920x1200 60.0*+ 1920x1080 60.0 50.0 59.9 24.0 24.0 1920x1080i 60.1 50.0 60.0 1600x1200 60.0 1280x1024 75.0 60.0 1152x864 75.0 1280x720 60.0 50.0 59.9 1024x768 75.1 60.0 800x600 75.0 60.3 720x576 50.0 720x480 60.0 59.9 640x480 75.0 60.0 59.9 720x400 70.1 HDMI2 disconnected (normal left inverted right x axis y axis) HDMI3 disconnected (normal left inverted right x axis y axis) DP2 disconnected (normal left inverted right x axis y axis) DP3 disconnected (normal left inverted right x axis y axis) VIRTUAL1 disconnected (normal left inverted right x axis y axis) 

Here I have two screens, the resolution are:

To get only the resolution of your primary monitor, you can also use this python oneliner:

$ python3 -c 'from gi.repository import Gdk; screen=Gdk.Screen.get_default(); \ geo = screen.get_monitor_geometry(screen.get_primary_monitor()); \ print(geo.width, "x", geo.height)' 1920 x 1200 

To get the resolution of your extanded desktop (for a multi monitor setup):

$ python3 -c 'from gi.repository import Gdk; screen=Gdk.Screen.get_default(); \ print(screen.get_width(), "x", screen.get_height())' 3520 x 1200 

The request was for the resolution. That is given by

xdpyinfo | grep resolution 

Typically, people use resolution to mean the dimensions. The DPI is not of as much concern as the dimensions are.

Читайте также:  Install only linux kernel

Example of output on one of my machines:

LVDS connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm 

On a raspberry pi without X, I was able to get the screen resolution by running:

You can get your current screen’s resolution as follows:

    Get the X resolution by running:

X=$(xrandr --current | grep '*' | uniq | awk '' | cut -d 'x' -f1) 
Y=$(xrandr --current | grep '*' | uniq | awk '' | cut -d 'x' -f2) 

That should be possible to do like this without using awk too.

You can start by terminal your preferred website which show you your screen resolution.

firefox https://de.piliapp.com/what-is-my/screen-resolution/ 

You can show the webpage on your terminal too by useing https://www.brow.sh/

If you like, you can skrapping this page by terminal by include appropriate python website skrapping tools and export the output to a terminal var.

Another solution is to use xprop:

$ xprop -notype -len 16 -root _NET_DESKTOP_GEOMETRY | cut -c 25- 11520, 1080 

If anyone cares, it was slightly faster on my machine than grepping xdpyinfo

Or, if you only care about width:

$ xprop -notype -len 8 -root _NET_DESKTOP_GEOMETRY | cut -c 25- 11520 

Tested only on multiple displays organized via Xinerama.

For what it’s worth, when using multiple connected displays and/or offsets with TwinView then xdpyinfo will give you the resolution of the entire set of displays the way they are configured. If you require the resolution of a single monitor or a monitor connected to one of the display ports you need to use xrandr. However, even in that configuration xrandr can be unreliable and not show the resolution. See this example entry from my X windows config file:

Option "MetaModes" "DP-1: 1440x900 +0+0, DP-3: 1440x900 +1568+0, DP-5: 1440x900 +3136+0" 

The xrandr output looks like this:

DVI-D-0 disconnected primary (normal left inverted right x axis y axis) HDMI-0 disconnected (normal left inverted right x axis y axis) DP-0 disconnected (normal left inverted right x axis y axis) DP-1 connected 1440x900+0+0 (normal left inverted right x axis y axis) 410mm x 256mm 1440x900 59.89*+ 1280x1024 60.02 1280x960 60.00 1280x800 59.81 1280x720 60.00 1152x864 75.00 1024x768 70.07 60.00 800x600 75.00 60.32 56.25 640x480 75.00 72.81 59.94 DP-2 disconnected (normal left inverted right x axis y axis) DP-3 connected (normal left inverted right x axis y axis) 1440x900 59.89 + 74.98 1280x1024 60.02 1280x960 60.00 1280x800 59.81 1280x720 60.00 1152x864 75.00 1024x768 70.07 60.00 800x600 75.00 60.32 56.25 640x480 75.00 72.81 59.94 DP-4 disconnected (normal left inverted right x axis y axis) DP-5 connected 1440x900+1568+0 (normal left inverted right x axis y axis) 410mm x 256mm 1440x900 59.89*+ 1280x1024 60.02 1280x960 60.00 1280x800 59.81 1280x720 60.00 1152x864 75.00 1024x768 70.07 60.00 800x600 75.00 60.32 56.25 640x480 75.00 72.81 59.94 

You can see that DP-3 isn’t showing a resolution on the line that a grep for «connected» would show. So the best, most consistent, and reliable command I’ve found for identifying the resolution of any individual connected display is:

/usr/bin/xrandr --query|/usr/bin/grep -A 1 connected|grep -v connected 
 1440x900 59.89*+ -- 1440x900 59.89*+ 74.98 -- 1440x900 59.89*+ 

At that point, it’s pretty trivial to pick out the different resolutions or grep for only one port.

Читайте также:  Github linux source code

Источник

Как изменить разрешение экрана в Linux

В последнее время часто приходилось сталкиваться с задачей изменения разрешения экрана в Linux. Найти её решение в интернете не сложно. Но чтобы не искать каждый раз решил оставить памятку и у себя на блоге. Дополнительно оказалось, что во многих таких решениях (по всей видимости скопированных друг у друга) демонстрируется непонимание вывода команды xrandr.

Прежде чем менять разрешение экрана нужно выяснить несколько моментов:

  • какое разрешение у нас сейчас;
  • какое разрешения нам нужно;
  • через какой интерфейс (порт) подключен монитор.

На первый и третий вопросы отвечает команда xrandr.

Согласно статье: «xrandr — это расширение X сервера, позволяющее производить настройки режимов работы мониторов».

  1. наш монитор подключен к интерфейсу Virtual1 и работает с разрешением 1024х768 пикселей (соответствующая строка помечена на рисунке, так же соответствующее разрешение помечается звездочкой в списке);
  2. список доступных интерфейсов (Virtual1, Virtual2, Virtual3 и т.д.). Мы не будем менять интерфейс.

Теперь главный вопрос, который вызывает непонимание: что выводится в двух колонках? Понятно, что в первой — разрешение экрана, а во второй — его частота в герцах. Но что это за разрешение? Во многих интернет ответах на вопрос «как изменить разрешение экрана в Linux» пишут, что это «доступные разрешения для уcтановки». Это не совсем так. Дальнейшие описываемые действия авторов (создание режима, его добавление непонятно куда и переключение на него) являются абсолютно лишними и только вводят читателей в заблуждение. Так что же выводит xrandr?

Она выводит список доступных режимов работы. То есть, если в нашем примере выводится разрешение 1440×900, то режим для него уже существует. Его не нужно заново создавать и тем более добавлять куда-то. Для переключения на него нужно использовать всего одну команду:

xrandr --output Virtual1 --mode 1440x900

или более короткий вариант:

Читайте также:  Linux если переменная пустая

Команда —newmode нужна для создания нового режима, которого нет в выводе xrandr. А команда —addmode «рассказывает» о нем xrandr.

Допустим, мы хотим задать разрешение 1500×800. Его нет в выводе xrandr, поэтому нужно создать соответствующий ему режим. Но вначале нужно получить всю необходимую информацию. Это делается с помощью команды cvt. В терминале вбиваем:

Аббревиатура cvt расшифровывается как Coordinate Video Timings. Так называется стандарт (VESA-2013-3 v1.2), задающий тайминги компонентов видеосигнала. В качестве параметров утилиты cvt мы указываем желаемое разрешение. Ее вывод направляется в текстовый файл 1.txt (удобнее для последующего копирования текста). Открыв его, мы увидим следующее:

# 1504×800 59.92 Hz (CVT) hsync: 49.80 kHz; pclk: 98.00 MHz
Modeline «1504x800_60.00» 98.00 1504 1584 1736 1968 800 803 813 831 -hsync +vsync

Для создания режима нам понадобится строка после слова Modeline. Обратите внимание: cvt несколько подкорректировала наш запрос. Видимо, так оно лучше соответствует стандартам. Теперь создаем режим и добавляем его в список доступных режимов.

xrandr --newmode "1504x800_60.00" 98.00 1504 1584 1736 1968 800 803 813 831 -hsync +vsync xrandr --addmode Virtual1 1504x800_60.00

Теперь если мы вновь проверим список доступных режимов, то увидим там наш режим

Осталось только переключиться на него любым описанным ранее способом.

Иногда при добавлении нового режима возникает ошибка.

Как пишут на форумах, данная проблема появляется на закрытых драйверах nvidia. Ее решение, как правило, основывается на ручном редактировании файла настроек xorg.conf. Но об этом может быть в другой раз.

P.S. Имена интерфейсов (Virtual1, Virtual2 и т.д.) выглядят необычно потому, что ве эти эксперименты проводились на виртуальной машине. На реальной аппаратуре они обычно имеют вид: VGA1, DVI1 и др. Например, на моем стационарном компьютере с Linux на борту доступны интерфейсы: VGA-0, DVI-D-0 и HDMI-0.

P.P.S. Согласно википедии: «VESA(Video Electronics Standards Association) — ассоциация стандартизации видеоэлектроники, основанная в 1989 году компанией NEC Home Electronics и восемью другими производителями видеоадаптеров. Первоначально задачей ставилось создание стандарта SVGA(800х600 пикселей) для видеодисплеев. После этого, VESA продолжила создавать стандарты, в основном относящиеся к функционированию видео периферии в IBM-совместимых компьютерах.»

Источник

Оцените статью
Adblock
detector