Другой вариант, использующий xrandr, является командой:
xrandr | grep ' connected'
Выход:
DVI-I-1 connected primary 1680x1050+0+0 (normal left inverted right x axis y axis) 473mm x 296mm
VGA-1 connected 1280x1024+1680+0 (normal left inverted right x axis y axis) 376mm x 301mm
(обратите внимание на пространство раньше connected, иначе disconnectedбудет включено)
Важные различия между xdpyinfoиxrandr
Хотя xrandrсписки экранов отображаются отдельно (в случае нескольких мониторов), xdpyinfoвыводит один набор измерений для всех экранов вместе («размер рабочего стола» вместо размера экрана)
Как заметил @agold, между ними есть (вполне) разница, которая кажется слишком большой, чтобы быть простой разницей в округлении:
xrandr: 473mm x 296mm
xdpyinfo: 445x278
Кажется, связано с ошибкой в xdpyinfo. Смотрите также здесь .
Если бы вы настаивали на дюймах
Используйте маленький скрипт ниже; выводит размер вашего экрана (ов) в дюймах; ширина / высота / диагональ (дюймы)
#!/usr/bin/env python3import subprocess
# change the round factor if you like
r =1
screens =[l.split()[-3:]for l in subprocess.check_output(["xrandr"]).decode("utf-8").strip().splitlines()if" connected"in l]for s in screens:
w = float(s[0].replace("mm","")); h = float(s[2].replace("mm","")); d =((w**2)+(h**2))**(0.5)print([round(n/25.4, r)for n in[w, h, d]])
Чтобы использовать это:
Скопируйте скрипт в пустой файл, сохраните его как get_dimensions.py, запустите его командой:
#!/usr/bin/env python3import subprocess
# change the round factor if you like
r =1
screens =[l.split()for l in subprocess.check_output(["xrandr"]).decode("utf-8").strip().splitlines()if" connected"in l]
scr_data =[]for s in screens:try:
scr_data.append((
s[0],
float(s[-3].replace("mm","")),
float(s[-1].replace("mm",""))))exceptValueError:passprint(("\t").join(["Screen","width","height","diagonal\n"+32*"-"]))for s in scr_data:
scr = s[0]; w = s[1]/25.4; h = s[2]/25.4; d =((w**2)+(h**2))**(0.5)print(("\t").join([scr]+[str(round(n,1))for n in[w, h, d]]))
РЕДАКТИРОВАТЬ 2 (май 2019)
«Вид» по запросу (в комментарии), модернизированная / более продвинутая / улучшенная (без системных вызовов, без разбора, но с использованием Gdk.Display) версия, делающая в значительной степени то же самое:
#!/usr/bin/env python3import gi
gi.require_version('Gdk','3.0')from gi.repository importGdk
dsp =Gdk.Display.get_default()
n_mons = dsp.get_n_monitors()print(("\t").join(["Screen","width","height","diagonal\n"+32*"-"]))for i in range(n_mons):
mon = dsp.get_monitor(i)
mon_name = mon.get_model()
w = mon.get_width_mm()/25.4
h = mon.get_height_mm()/25.4
d =((w**2)+(h**2))**(0.5)print(("\t").join([mon_name]+[str(round(n,1))for n in[w, h, d]]))
Просто примечание, но оба ответа дают разные результаты: xdpyinfo«474x303 миллиметра» и xrandr«473 мм x 296 мм».
agold
1
@agold Теперь это интересно. Разница округления. Еще одна интересная вещь - xdpyinfoвывод на экран размера рабочего стола (обоих экранов), а не размера экрана!
Джейкоб Влейм
@ agold разница слишком большая для округления !! Смотрите мое редактирование.
Джейкоб Влейм
да, он довольно большой, но как эти программы получают эту информацию? Это какая-то мета информация, поступающая с монитора, или она рассчитывается на основе каких-то других параметров ...?
На всякий случай, если вам нужен более общий ответ, вы можете разрубить гордиев узел и использовать для этого не-гиковскую физическую линейку . Согласно этой вики , «размер экрана обычно описывается длиной его диагонали »:
Если у вас есть линейка, отображающая только сантиметры , вы можете использовать простое преобразование :
1 cm = 0.393701 in
(or 2.54 cm = 1 in)
Так что, если ваша линейка измеряет 30 сантиметров , ваш экран составляет 11,811 дюймов. Вы также можете использовать Google с запросом формы 30 cm to in.
Спросите Ubuntu - это сайт, посвященный программным решениям, поэтому ваш ответ здесь немного не по теме ... С другой стороны, он правильный, хорошо написанный, очень читаемый и забавный! :-) Так что проголосовали!
Fabby
1
@ dn-ʞɔɐqɹW: На самом деле, это связано с ошибкой с моей стороны. Я прочитал вопрос «Как я могу получить размер монитора моего ноутбука?», И моя первая мысль была «хорошо, с линейкой», и, прежде чем прочитать полный вопрос, я вырезал свой ответ из каменного блока.
Френель
Как примечание стороны, один дюйм равен 25,4 мм точно.
Пэдди Ландау
6
Xdpyinfoутилита для отображения информации о X-сервере Он используется для проверки возможностей сервера, предопределенных значений для различных параметров, используемых при обмене данными между клиентами и сервером, а также различных типов экранов и визуальных элементов, которые доступны.
Привет, Парто, мне очень нравится твой ответ +1, однако, посмотри здесь: bbs.archlinux.org/viewtopic.php?id=204823 существует огромная разница в xdpyinfoотчетах измерений и xrandr.
При измерении с хорошей старой физического качеством рулеткой, я получаю на моем экране в значительной степени именно на выходе xrandr: 473mm, в то время как xdpyinfoотчеты пути слишком короткий ( 445mm). Этот вопрос оказывается более интересным, чем предположил ОП, я думаю :)
Джейкоб Влейм
0
С этим я тоже боролся (когда я захотел перейти на новый монитор для себя и хотел узнать, какого размера был мой старый монитор), поэтому я написал сценарий оболочки, который найдет для вас размер монитора.
Я использовал xdpyinfoпервый ответ, чтобы получить размеры экрана и опередил его. Сценарий, по сути, вычисляет диагональ по размерам экрана, конвертирует из миллиметров в дюймы и отображает результат.
Ответы:
Другой вариант, использующий
xrandr
, является командой:Выход:
(обратите внимание на пространство раньше
connected
, иначеdisconnected
будет включено)Важные различия между
xdpyinfo
иxrandr
xrandr
списки экранов отображаются отдельно (в случае нескольких мониторов),xdpyinfo
выводит один набор измерений для всех экранов вместе («размер рабочего стола» вместо размера экрана)Как заметил @agold, между ними есть (вполне) разница, которая кажется слишком большой, чтобы быть простой разницей в округлении:
Кажется, связано с ошибкой в
xdpyinfo
. Смотрите также здесь .Если бы вы настаивали на дюймах
Используйте маленький скрипт ниже; выводит размер вашего экрана (ов) в дюймах; ширина / высота / диагональ (дюймы)
Чтобы использовать это:
Скопируйте скрипт в пустой файл, сохраните его как
get_dimensions.py
, запустите его командой:Вывод на два моих экрана:
редактировать
Причудливая версия того же скрипта (с несколькими улучшениями и более приятным выводом), похожая на:
Сценарий:
РЕДАКТИРОВАТЬ 2 (май 2019)
«Вид» по запросу (в комментарии), модернизированная / более продвинутая / улучшенная (без системных вызовов, без разбора, но с использованием Gdk.Display) версия, делающая в значительной степени то же самое:
Выход:
Я оставлю первоначальный ответ, так как кажется, что неуместно удалять ответ после такого длительного времени, которое породило существующие голоса.
источник
xdpyinfo
«474x303 миллиметра» иxrandr
«473 мм x 296 мм».xdpyinfo
вывод на экран размера рабочего стола (обоих экранов), а не размера экрана!xdpyinfo
: bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/201491 AL Хотя отчет довольно старый, я не вижу его исправленным. См. Также: bbs.archlinux.org/viewtopic.php?id=204823На всякий случай, если вам нужен более общий ответ, вы можете разрубить гордиев узел и использовать для этого не-гиковскую физическую линейку . Согласно этой вики , «размер экрана обычно описывается длиной его диагонали »:
Если у вас есть линейка, отображающая только сантиметры , вы можете использовать простое преобразование :
Так что, если ваша линейка измеряет 30 сантиметров , ваш экран составляет 11,811 дюймов. Вы также можете использовать Google с запросом формы
30 cm to in
.Изображение предоставлено: https://en.wikipedia.org/wiki/File:Display_size_measurements.png
источник
Xdpyinfo
утилита для отображения информации о X-сервере Он используется для проверки возможностей сервера, предопределенных значений для различных параметров, используемых при обмене данными между клиентами и сервером, а также различных типов экранов и визуальных элементов, которые доступны.Команда для получения размера монитора:
Результат
источник
xdpyinfo
отчетах измерений иxrandr
.xrandr
: 473mm, в то время какxdpyinfo
отчеты пути слишком короткий (445mm
). Этот вопрос оказывается более интересным, чем предположил ОП, я думаю :)С этим я тоже боролся (когда я захотел перейти на новый монитор для себя и хотел узнать, какого размера был мой старый монитор), поэтому я написал сценарий оболочки, который найдет для вас размер монитора.
Я использовал
xdpyinfo
первый ответ, чтобы получить размеры экрана и опередил его. Сценарий, по сути, вычисляет диагональ по размерам экрана, конвертирует из миллиметров в дюймы и отображает результат.URL репозитория: https://github.com/abhishekvp/WhatsMyScreenSize
Надеюсь это поможет!
источник