Antworten:
Eine andere Option, die verwendet wird xrandr
, ist der Befehl:
xrandr | grep ' connected'
Ausgabe:
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
(Beachte das Leerzeichen davor connected
, sonst disconnected
wird es eingeschlossen)
xdpyinfo
undxrandr
xrandr
Listen Bildschirm getrennt (im Fall von mehreren Monitoren), xdpyinfo
gibt einen einzigen Satz von Dimensionen für alle Bildschirme zusammen ( „Desktop Größe“ anstelle von Bildschirmgröße)Wie @agold feststellt, gibt es einen (ziemlichen) Unterschied zwischen den beiden, der zu groß scheint, um eine einfache Rundungsdifferenz zu sein:
xrandr: 473mm x 296mm
xdpyinfo: 445x278
Es scheint im Zusammenhang mit einem Fehler in xdpyinfo
. Siehe auch hier .
Verwenden Sie das kleine Skript unten; Es gibt die Größe Ihres Bildschirms (Ihrer Bildschirme) in Zoll aus. Breite / Höhe / Diagonale (Zoll)
#!/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]])
Kopieren Sie das Skript in eine leere Datei, speichern Sie es unter get_dimensions.py
und führen Sie es mit dem folgenden Befehl aus:
python3 /path/to/get_dimensions.py
Ausgabe auf meinen beiden Bildschirmen:
width - height - diagonal (inches)
[18.6, 11.7, 22.0]
[14.8, 11.9, 19.0]
Ausgefallene Version desselben Skripts (mit ein paar Verbesserungen und einer schöneren Ausgabe), die so aussieht:
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]]))
"Art of" auf Anfrage (in einem Kommentar), eine modernisierte / fortgeschrittenere / verbesserte Version (keine Systemaufrufe, kein Parsen, aber Verwendung von Gdk.Display), die so ziemlich dasselbe macht:
#!/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]]))
Ausgabe:
Screen width height diagonal
--------------------------------
eDP-1 20.0 11.3 23.0
HDMI-1 18.6 11.7 22.0
Ich werde die ursprüngliche Antwort belassen, da es unangemessen erscheint, die Antwort nach so langer Zeit zu entfernen, die die vorhandenen Stimmen erzeugt hat.
xdpyinfo
gibt mir xrandr
"474 x 303 Millimeter" und "473 mm x 296 mm".
xdpyinfo
die Desktop- Größe (beide Bildschirme) ausgegeben wird, nicht die Größe des Bildschirms!
xdpyinfo
: bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/201491 zu tun zu haben. Obwohl der Bericht ziemlich alt ist, sehe ich ihn nicht als behoben an. Siehe auch: bbs.archlinux.org/viewtopic.php?id=204823
Nur für den Fall, dass Sie eine allgemeinere Antwort wünschen, können Sie den gordischen Knoten durchtrennen und dafür ein nicht geekisches physisches Lineal verwenden . In diesem Wiki wird die "Größe eines Bildschirms normalerweise durch die Länge seiner Diagonale beschrieben ":
Wenn Sie ein Lineal haben, das nur Zentimeter anzeigt , können Sie die einfache Konvertierung verwenden :
1 cm = 0.393701 in
(or 2.54 cm = 1 in)
Wenn Ihr Lineal also 30 Zentimeter misst , ist Ihr Bildschirm 11,811 Zoll groß . Sie können Google auch mit einer Abfrage des Formulars verwenden 30 cm to in
.
Bildnachweis: https://en.wikipedia.org/wiki/File:Display_size_measurements.png
Xdpyinfo
ist ein Dienstprogramm zum Anzeigen von Informationen zu einem X-Server. Es wird verwendet, um die Funktionen eines Servers, die vordefinierten Werte für verschiedene Parameter für die Kommunikation zwischen Clients und Server sowie die verschiedenen verfügbaren Arten von Bildschirmen und Grafiken zu untersuchen.
Der Befehl zum Abrufen der Monitorgröße lautet:
xdpyinfo | grep dimensions
Ergebnis
dimensions: 1366x768 pixels (361x203 millimeters)
xdpyinfo
und xrandr
.
xrandr
: 473 mm, während die xdpyinfo
Meldungen viel zu kurz sind ( 445mm
). Diese Frage erweist sich als interessanter als angenommen, dass OP :)
Dies war etwas, mit dem auch ich zu kämpfen hatte (als ich auf einen neuen Monitor upgraden wollte und wissen wollte, wie groß mein alter Monitor war), also schrieb ich ein Shell-Skript, das die Monitorgröße für Sie findet.
Ich habe das xdpyinfo
von der ersten Antwort an verwendet, um die Bildschirmabmessungen zu ermitteln und darauf aufzubauen. Das Skript berechnet im Wesentlichen die Diagonale aus den Bildschirmabmessungen, konvertiert von Millimetern in Zoll und zeigt das Ergebnis an.
Repository-URL: https://github.com/abhishekvp/WhatsMyScreenSize
Hoffe das hilft!