Co to jest polecenie Linux Ubuntu, aby znaleźć rozmiar monitora laptopa? Chcę wiedzieć w calach, jeśli to możliwe.
Dzięki
Co to jest polecenie Linux Ubuntu, aby znaleźć rozmiar monitora laptopa? Chcę wiedzieć w calach, jeśli to możliwe.
Dzięki
Odpowiedzi:
Inną opcją przy użyciu xrandr
jest polecenie:
xrandr | grep ' connected'
Wynik:
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 disconnected
zostanie uwzględniona)
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:
xrandr: 473mm x 296mm
xdpyinfo: 445x278
Wydaje się, że jest związany z błędem w xdpyinfo
. Zobacz także tutaj .
Użyj małego skryptu poniżej; wyświetla rozmiar twoich ekranów w calach; szerokość / wysokość / przekątna (cale)
#!/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]])
Skopiuj skrypt do pustego pliku, zapisz go jako get_dimensions.py
, uruchom go za pomocą polecenia:
python3 /path/to/get_dimensions.py
Dane wyjściowe na moich dwóch ekranach:
width - height - diagonal (inches)
[18.6, 11.7, 22.0]
[14.8, 11.9, 19.0]
Fantazyjna wersja tego samego skryptu (z kilkoma ulepszeniami i ładniejszym wyjściem), wyglądająca jak:
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]]))
„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 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]]))
Wynik:
Screen width height diagonal
--------------------------------
eDP-1 20.0 11.3 23.0
HDMI-1 18.6 11.7 22.0
Pozostawię pierwotną odpowiedź, ponieważ usunięcie odpowiedzi po tak długim czasie, który wygenerował istniejące głosy, wydaje się niewłaściwe.
xdpyinfo
303 milimetry” i xrandr
„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=204823
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
.
Prawa do zdjęć: https://en.wikipedia.org/wiki/File:Display_size_measurements.png
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:
xdpyinfo | grep dimensions
Wynik
dimensions: 1366x768 pixels (361x203 millimeters)
xdpyinfo
raportach wymiarów i xrandr
.
xrandr
: 473 mm, a xdpyinfo
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!