Как я могу получить размер монитора своего ноутбука?

Какова команда Linux Ubuntu для нахождения размера монитора ноутбука? Я хочу знать в дюймах, если это возможно.

Спасибо

42
задан 18 February 2016 в 01:43

5 ответов

Другая опция, с помощью 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 python3
import 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, выполните его командой:

python3 /path/to/get_dimensions.py

Вывод на моих двух экранах:

width - height - diagonal (inches)

[18.6, 11.7, 22.0]
[14.8, 11.9, 19.0]



Править

Необычная версия того же сценария (с несколькими улучшениями и более хорошим выводом), будучи похож:

Screen  width   height  diagonal
--------------------------------
DVI-I-1 18.6    11.7    22.0
VGA-1   14.8    11.9    19.0

Сценарий:

#!/usr/bin/env python3
import 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", ""))
            ))
    except ValueError:
        pass

print(("\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. Дисплей) версия, делая в значительной степени точно то же:

#!/usr/bin/env python3
import gi
gi.require_version('Gdk', '3.0')
from gi.repository import Gdk

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]]))

Вывод:

Screen  width   height  diagonal
--------------------------------
eDP-1   20.0    11.3    23.0
HDMI-1  18.6    11.7    22.0

Я оставлю исходный ответ, так как кажется неуместным удалить ответ после такого долгого времени, которое генерировало существующие голоса.

47
ответ дан 23 November 2019 в 00:05

На всякий случай Вы хотите более общий ответ, можно сократить гордиев узел и использовать негиковский медосмотр линейка для этого. Согласно этот wiki, "размер экрана обычно описывается длиной диагональ ":

enter image description here

, Если у Вас есть линейка, которая только отображается сантиметры , можно использовать простое преобразование :

1 cm = 0.393701 in
(or 2.54 cm = 1 in)

Поэтому, если Ваша линейка имеет размеры 30 сантиметров , Ваш экран 11.811 дюймы. Можно также использовать Google с запросом формы 30 cm to in.

<час>

кредиты Изображения: https://en.wikipedia.org/wiki/File:Display_size_measurements.png

14
ответ дан 23 November 2019 в 00:05

Xdpyinfo утилита для отображения информации о X-сервере. Это используется для исследования возможностей сервера, предопределенных значений для различных параметров, используемых в передаче между клиентами и сервером и различными типами экранов и зрительного ряда, который доступен.

команда для получения размера монитора:

xdpyinfo | grep dimensions

Результат

dimensions:    1366x768 pixels (361x203 millimeters)
6
ответ дан 23 November 2019 в 00:05

Это было чем-то, что я также боролся с (когда я хотел обновить до нового монитора для меня и хотел знать, каким размером мой старый монитор был), таким образом, я записал сценарий оболочки, который находит размер монитора для Вас.

Я использовал xdpyinfo из первого ответа, который получит экранные размеры и созданный вперед на нем. Сценарий по существу вычисляет диагональ из экранных размеров, преобразовывающих от миллиметров до дюймов, и отображает результат.

URL репозитория: https://github.com/abhishekvp/WhatsMyScreenSize

Надеюсь, это поможет!

0
ответ дан 23 November 2019 в 00:05

Как насчет этого :

xrandr | awk '/connected/{print sqrt( ($(NF-2)/10)^2 + ($NF/10)^2 )/2,54" дюйма"}'

10
ответ дан 3 June 2020 в 15:23

Другие вопросы по тегам:

Похожие вопросы: