Wie kann ich die Bildschirmgröße meines Laptops ermitteln?

42

Was ist der Ubuntu Linux-Befehl, um die Größe des Laptop-Monitors zu ermitteln? Ich möchte wissen, in Zoll, wenn möglich.

Vielen Dank

user111
quelle
Hallo user111, bitte sehen Sie dies: meta.askubuntu.com/q/15051/72216 . Könnten Sie wenigstens ein Feedback geben?
Jacob Vlijm

Antworten:

46

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 disconnectedwird es eingeschlossen)

Wichtige Unterschiede zwischen xdpyinfoundxrandr

  • Während xrandrListen Bildschirm getrennt (im Fall von mehreren Monitoren), xdpyinfogibt 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 .

Wenn Sie auf Zoll bestehen würden

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]])

Um es zu benutzen:

Kopieren Sie das Skript in eine leere Datei, speichern Sie es unter get_dimensions.pyund 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]



Bearbeiten

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

Das Drehbuch:

#!/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]]))

EDIT 2 (Mai 2019)

"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.

Jacob Vlijm
quelle
Nur eine Randnotiz, aber beide Antworten geben mir unterschiedliche Ergebnisse: xdpyinfogibt mir xrandr"474 x 303 Millimeter" und "473 mm x 296 mm".
Agold
1
@agold Nun das ist interessant. Ein rundungsunterschied. Eine andere interessante Sache ist, dass xdpyinfodie Desktop- Größe (beide Bildschirme) ausgegeben wird, nicht die Größe des Bildschirms!
Jacob Vlijm
@agold der Unterschied ist viel zu groß für eine Rundungsdifferenz !! Siehe meine Bearbeitung.
Jacob Vlijm
Ja, es ist ziemlich groß, aber wie erhalten diese Programme diese Informationen? Handelt es sich um Metainformationen, die vom Monitor stammen, oder handelt es sich um Schätzungen, die auf anderen Parametern basieren ...?
Agold
@agold Es scheint mit einem Fehler in 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
Jacob Vlijm
14

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 ":

Bildbeschreibung hier eingeben

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

phresnel
quelle
Ask Ubuntu ist eine Website für Softwarelösungen, daher ist Ihre Antwort hier ein wenig falsch ... Auf der anderen Seite ist sie korrekt, gut geschrieben, sehr lesbar und lustig! :-) So aufgestimmt!
Fabby
1
@ dn-ʞɔɐqɹW: Eigentlich basiert es auf einem Fehler auf meiner Seite. Ich las die Frage "Wie kann ich die Bildschirmgröße meines Laptops ermitteln?" Und mein erster Gedanke war "gut, mit einem Lineal". Bevor ich die vollständige Frage las, ließ ich meine Antwort aus dem Steinblock herausschneiden.
Phresnel
Als Randnotiz entspricht ein Zoll genau 25,4 mm.
Paddy Landau
6

Xdpyinfoist 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)
Parto
quelle
1
Hallo Parto, mir gefällt deine Antwort +1 sehr gut, schau mal hier: bbs.archlinux.org/viewtopic.php?id=204823 Es gibt einen großen Unterschied in den Dimensionsberichten xdpyinfound xrandr.
Jacob Vlijm
@Jacob Etwas Interessantes - askubuntu.com/questions/378386/…
Parto
1
Beim Messen mit einem guten alten Maßband in physikalischer Qualität erhalte ich auf meinem Bildschirm ziemlich genau die Ausgabe von xrandr: 473 mm, während die xdpyinfoMeldungen viel zu kurz sind ( 445mm). Diese Frage erweist sich als interessanter als angenommen, dass OP :)
Jacob Vlijm
0

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 xdpyinfovon 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!

Abhishek Potnis
quelle