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
(uwaga na miejsce wcześniej connected, w przeciwnym razie disconnectedzostanie uwzględniona)
Ważne różnice między xdpyinfoixrandr
Podczas gdy xrandrwyświetla listę ekranów osobno (w przypadku wielu monitorów), xdpyinfowyświetla jeden zestaw wymiarów dla wszystkich ekranów razem („rozmiar pulpitu” zamiast rozmiaru ekranu)
Jak zauważył @agold, istnieje (całkiem) różnica między nimi, która wydaje się zbyt duża, aby była zwykłą różnicą zaokrąglania:
xrandr: 473mm x 296mm
xdpyinfo: 445x278
Wydaje się, że jest związany z błędem w xdpyinfo. Zobacz także tutaj .
Jeśli nalegasz na cale
Użyj małego skryptu poniżej; wyświetla rozmiar twoich ekranów w calach; szerokość / wysokość / przekątna (cale)
#!/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]])
Aby go użyć:
Skopiuj skrypt do pustego pliku, zapisz go jako get_dimensions.py, uruchom go za pomocą polecenia:
#!/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]]))
EDYCJA 2 (maj 2019)
„Rodzaj” na życzenie (w komentarzu), zmodernizowana / bardziej zaawansowana / ulepszona (bez wywołań systemowych, bez analizowania, ale przy użyciu Gdk.Display), wykonująca prawie dokładnie to samo:
#!/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]]))
Na marginesie, ale obie odpowiedzi dają różne wyniki: „474 x xdpyinfo303 milimetry” i xrandr„473 mm x 296 mm ”.
ponownie
1
@agold To jest interesujące. Różnica w zaokrągleniu. Kolejną interesującą rzeczą jest to, że xdpyinfowyświetla rozmiar pulpitu (oba ekrany), a nie rozmiar ekranu!
Jacob Vlijm,
@agold różnica jest zbyt duża, aby zaokrąglić różnicę !! Zobacz moją edycję.
Jacob Vlijm
tak, jest dość duży, ale w jaki sposób te programy uzyskują te informacje? Czy to jakieś meta informacje pochodzące z monitora, czy szacuje się je na podstawie innych parametrów ...?
Na wypadek, gdybyś chciał uzyskać bardziej ogólną odpowiedź, możesz odciąć węzeł gordiański i użyć do tego fizycznego władcy, który nie jest naukowy . Zgodnie z tą wiki „rozmiar ekranu jest zwykle opisywany przez długość jego przekątnej ”:
Jeśli masz linijkę wyświetlającą tylko centymetry , możesz użyć prostej konwersji :
1 cm = 0.393701 in
(or 2.54 cm = 1 in)
Więc jeśli linijka mierzy 30 centymetrów , ekran ma 11,811 cali. Możesz również użyć Google z zapytaniem w formularzu 30 cm to in.
Zapytaj Ubuntu to strona z rozwiązaniami programowymi, więc twoja odpowiedź jest nieco nie na temat ... Z drugiej strony jest poprawna, dobrze napisana, bardzo czytelna i zabawna! :-) Tak gorąco!
Fabby
1
@ dn-ʞɔɐqɹW: Właściwie jest to spowodowane błędem po mojej stronie. Przeczytałem pytanie „Jak mogę uzyskać rozmiar monitora mojego laptopa?”, A moją pierwszą myślą było „no, z linijką”, a przed przeczytaniem pełnego pytania miałem swoją odpowiedź wyciętą kamienną bryłę.
fresnel
Na marginesie, jeden cal to dokładnie 25,4 mm.
Paddy Landau
6
Xdpyinfoto narzędzie do wyświetlania informacji o serwerze X. Służy do badania możliwości serwera, predefiniowanych wartości różnych parametrów używanych w komunikacji między klientami a serwerem oraz różnych dostępnych typów ekranów i elementów wizualnych.
Cześć Parto, naprawdę podoba mi się twoja odpowiedź +1, jednak spójrz tutaj: bbs.archlinux.org/viewtopic.php?id=204823 jest ogromna różnica w xdpyinforaportach wymiarów i xrandr.
Podczas pomiaru za pomocą dobrej starej taśmy mierniczej o jakości fizycznej wyświetlam na ekranie prawie dokładnie wynik xrandr: 473 mm, a xdpyinforaporty są o wiele za krótkie ( 445mm). To pytanie okazuje się bardziej interesujące niż przypuszczam, że OP :)
Jacob Vlijm
0
To było coś, z czym również miałem problem (kiedy chciałem uaktualnić do nowego monitora dla siebie i chciałem wiedzieć, jaki rozmiar ma mój stary monitor), więc napisałem skrypt powłoki, który znajdzie dla ciebie rozmiar monitora.
Skorzystałem xdpyinfoz pierwszej odpowiedzi, aby uzyskać wymiary ekranu i zbudowałem na niej. Skrypt zasadniczo oblicza przekątną na podstawie wymiarów ekranu, konwertując z milimetrów na cale i wyświetla wynik.
Odpowiedzi:
Inną opcją przy użyciu
xrandr
jest polecenie:Wynik:
(uwaga na miejsce wcześniej
connected
, w przeciwnym raziedisconnected
zostanie uwzględniona)Ważne różnice między
xdpyinfo
ixrandr
xrandr
wyświetla listę ekranów osobno (w przypadku wielu monitorów),xdpyinfo
wyświetla jeden zestaw wymiarów dla wszystkich ekranów razem („rozmiar pulpitu” zamiast rozmiaru ekranu)Jak zauważył @agold, istnieje (całkiem) różnica między nimi, która wydaje się zbyt duża, aby była zwykłą różnicą zaokrąglania:
Wydaje się, że jest związany z błędem w
xdpyinfo
. Zobacz także tutaj .Jeśli nalegasz na cale
Użyj małego skryptu poniżej; wyświetla rozmiar twoich ekranów w calach; szerokość / wysokość / przekątna (cale)
Aby go użyć:
Skopiuj skrypt do pustego pliku, zapisz go jako
get_dimensions.py
, uruchom go za pomocą polecenia:Dane wyjściowe na moich dwóch ekranach:
Edytować
Fantazyjna wersja tego samego skryptu (z kilkoma ulepszeniami i ładniejszym wyjściem), wyglądająca jak:
Scenariusz:
EDYCJA 2 (maj 2019)
„Rodzaj” na życzenie (w komentarzu), zmodernizowana / bardziej zaawansowana / ulepszona (bez wywołań systemowych, bez analizowania, ale przy użyciu Gdk.Display), wykonująca prawie dokładnie to samo:
Wynik:
Pozostawię pierwotną odpowiedź, ponieważ usunięcie odpowiedzi po tak długim czasie, który wygenerował istniejące głosy, wydaje się niewłaściwe.
źródło
xdpyinfo
303 milimetry” ixrandr
„473 mm x 296 mm ”.xdpyinfo
wyświetla rozmiar pulpitu (oba ekrany), a nie rozmiar ekranu!xdpyinfo
: bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/201491 AL Chociaż raport jest dość stary, nie widzę go naprawić. Zobacz także: bbs.archlinux.org/viewtopic.php?id=204823Na wypadek, gdybyś chciał uzyskać bardziej ogólną odpowiedź, możesz odciąć węzeł gordiański i użyć do tego fizycznego władcy, który nie jest naukowy . Zgodnie z tą wiki „rozmiar ekranu jest zwykle opisywany przez długość jego przekątnej ”:
Jeśli masz linijkę wyświetlającą tylko centymetry , możesz użyć prostej konwersji :
Więc jeśli linijka mierzy 30 centymetrów , ekran ma 11,811 cali. Możesz również użyć Google z zapytaniem w formularzu
30 cm to in
.Prawa do zdjęć: https://en.wikipedia.org/wiki/File:Display_size_measurements.png
źródło
Xdpyinfo
to narzędzie do wyświetlania informacji o serwerze X. Służy do badania możliwości serwera, predefiniowanych wartości różnych parametrów używanych w komunikacji między klientami a serwerem oraz różnych dostępnych typów ekranów i elementów wizualnych.Polecenie uzyskania rozmiaru monitora to:
Wynik
źródło
xdpyinfo
raportach wymiarów ixrandr
.xrandr
: 473 mm, axdpyinfo
raporty są o wiele za krótkie (445mm
). To pytanie okazuje się bardziej interesujące niż przypuszczam, że OP :)To było coś, z czym również miałem problem (kiedy chciałem uaktualnić do nowego monitora dla siebie i chciałem wiedzieć, jaki rozmiar ma mój stary monitor), więc napisałem skrypt powłoki, który znajdzie dla ciebie rozmiar monitora.
Skorzystałem
xdpyinfo
z pierwszej odpowiedzi, aby uzyskać wymiary ekranu i zbudowałem na niej. Skrypt zasadniczo oblicza przekątną na podstawie wymiarów ekranu, konwertując z milimetrów na cale i wyświetla wynik.Adres URL repozytorium: https://github.com/abhishekvp/WhatsMyScreenSize
Mam nadzieję że to pomoże!
źródło