답변:
를 사용하는 또 다른 옵션 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]]))
요청시 (주석으로), 현대화 / 고급 / 개선 (시스템 호출, 구문 분석은 없지만 Gdk.Display 사용) 버전은 거의 동일하게 수행됩니다.
#!/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
오랜 시간이 지난 후에도 기존 투표를 생성 한 답변을 제거하는 것은 부적절 해 보이기 때문에 원래 답변을 그대로 두겠습니다.
xdpyinfo
제공합니다. "474x303 밀리미터"및 xrandr
"473mm x 296mm"를 제공합니다.
xdpyinfo
출력 한다는 것입니다 !
xdpyinfo
: bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/201491 보고서는 상당히 오래되었지만 수정 된 것으로 보이지는 않습니다. 참조 : bbs.archlinux.org/viewtopic.php?id=204823
좀 더 일반적인 대답을 원한다면 gordian knot을 자르고 괴짜가 아닌 물리적 통치자를 사용할 수 있습니다. 당 위키 의 "스크린 크기는 일반적으로 그것의 길이에 의해 설명된다 대각선 "
센티미터 만 표시하는 눈금자가 있으면 간단한 변환을 사용할 수 있습니다 .
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
Xdpyinfo
X 서버에 대한 정보를 표시하는 유틸리티입니다. 서버의 기능, 클라이언트와 서버 간 통신에 사용되는 다양한 매개 변수에 대한 사전 정의 된 값, 사용 가능한 여러 유형의 화면 및 비주얼을 검사하는 데 사용됩니다.
모니터 크기를 얻는 명령은 다음과 같습니다.
xdpyinfo | grep dimensions
결과
dimensions: 1366x768 pixels (361x203 millimeters)
xdpyinfo
보고서 및이 xrandr
.
xrandr
있는 동안, 473mm : xdpyinfo
보고서 방법이 너무 짧다 ( 445mm
). 이 질문은 OP가 생각한 것보다 더 흥미로운 것으로 판명되었습니다 :)
이것은 나도 어려움을 겪고 있었으며 (내 자신을 위해 새로운 모니터로 업그레이드하고 이전 모니터의 크기를 알고 싶을 때) 모니터 크기를 찾는 쉘 스크립트를 작성했습니다.
xdpyinfo
첫 번째 답변에서 from을 사용하여 화면 크기를 가져 와서 앞서 작성했습니다. 스크립트는 기본적으로 화면 크기에서 대각선을 계산하여 밀리미터에서 인치로 변환하고 결과를 표시합니다.
리포지토리 URL : https://github.com/abhishekvp/WhatsMyScreenSize
도움이 되었기를 바랍니다!