Yanıtlar:
xrandr
Komutu kullanan başka bir seçenek de komuttur:
xrandr | grep ' connected'
Çıktı:
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
(önceki boşluğa dikkat edin connected
, başka disconnected
dahil edilecek)
xdpyinfo
Ve arasındaki önemli farklarxrandr
xrandr
(çoklu monitör durumunda) ayrı ayrı listeler ekranlar, xdpyinfo
hep birlikte ekranlar için boyutlarının tek dizi verir ( "masaüstü boyutu" yerine, ekran boyutunun)@ Agold tarafından fark edildiği gibi, ikisi arasında bir fark vardır, ki bunlar basit bir yuvarlama farkı olamayacak kadar büyüktür:
xrandr: 473mm x 296mm
xdpyinfo: 445x278
Bu bağlı gözükmektedir bir hata içinde xdpyinfo
. Ayrıca buraya bakınız .
Aşağıdaki küçük betiği kullanın; ekranınızın boyutunu inç olarak verir; genişlik / yükseklik / diyagonal (inç)
#!/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]])
Komut dosyasını boş bir dosyaya kopyalayın, kaydedin get_dimensions.py
, komutuyla çalıştırın:
python3 /path/to/get_dimensions.py
İki ekranımda çıktı:
width - height - diagonal (inches)
[18.6, 11.7, 22.0]
[14.8, 11.9, 19.0]
Aynı betiğin süslü versiyonu (birkaç iyileştirme ve daha iyi bir çıktıyla), şöyle görünüyor:
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]]))
İstek üzerine "bir tür" (bir yorumda), modernize edilmiş / daha gelişmiş / gelişmiş (sistem çağrısı yok, ayrıştırma yok, ancak Gdk.Display kullanarak) sürüm, hemen hemen aynı şekilde:
#!/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]]))
Çıktı:
Screen width height diagonal
--------------------------------
eDP-1 20.0 11.3 23.0
HDMI-1 18.6 11.7 22.0
Orjinal cevabı bırakacağım, çünkü cevabı çok uzun bir süre sonra var olan oylamaları ortaya çıkarması uygun görünmüyor.
xdpyinfo
verir : bana "474x303 milimetre" ve xrandr
"473mm x 296mm" verir.
xdpyinfo
çıkışları masaüstü (hem ekranları) boyutu değil, ekranın boyutu!
xdpyinfo
: bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/201491 Rapor oldukça eski olmasına rağmen, sabit görmüyorum. Ayrıca bakınız: bbs.archlinux.org/viewtopic.php?id=204823
Daha genel bir cevap istemeniz durumunda , gordian düğümü kesebilir ve bunun için inek gibi olmayan bir fiziksel cetvel kullanabilirsiniz . Gereğince bu wiki , "bir ekran boyutu genellikle uzunluğuyla açıklanan Diagonal'in ":
Yalnızca santimetre görüntüleyen bir cetveliniz varsa , basit dönüşümü kullanabilirsiniz :
1 cm = 0.393701 in
(or 2.54 cm = 1 in)
Cetveliniz 30 santimetre ölçüyorsa , ekranınız 11.811 inç'tir. Ayrıca kullanabilirsiniz google formunun bir sorgu ile 30 cm to in
.
Resim kredisi: https://en.wikipedia.org/wiki/File:Display_size_measurements.png
Xdpyinfo
X sunucusu hakkında bilgi görüntülemek için bir yardımcı programdır. Bir sunucunun yeteneklerini, istemcilerle sunucu arasında iletişimde kullanılan çeşitli parametreler için önceden tanımlanmış değerleri ve mevcut olan farklı ekran ve görsel türlerini incelemek için kullanılır.
Monitör boyutunu alma komutu:
xdpyinfo | grep dimensions
Sonuç
dimensions: 1366x768 pixels (361x203 millimeters)
xdpyinfo
xrandr
xrandr
ederken, 473mm: xdpyinfo
raporlara yolu çok kısa ( 445mm
). Bu soru daha ilginç görünüyor ve OP sanırım sanırım :)
Bu benim de uğraştığım bir şeydi (kendim için yeni bir monitöre yükseltmek istediğimde ve eski monitörümün hangi boyutta olduğunu bilmek istediğimde), bu yüzden sizin için monitör boyutunu bulan bir kabuk betiği yazdım.
Kullandığım xdpyinfo
ekran boyutlarını almak için ilk yanıt den ve üzerinde önde inşa etti. Komut esas olarak köşegeni ekran boyutlarından hesaplar, milimetreden inç'e çevirir ve sonucu görüntüler.
Havuz URL'si: https://github.com/abhishekvp/WhatsMyScreenSize
Bu yardımcı olur umarım!