Comment puis-je obtenir la taille du moniteur de mon ordinateur portable?

42

Quelle est la commande Linux Ubuntu pour trouver la taille du moniteur d'ordinateur portable? Je veux savoir en pouces si possible.

Merci

utilisateur111
la source
Bonjour user111, merci de regarder ceci: meta.askubuntu.com/q/15051/72216 . Pourriez - vous au moins fournir une rétroaction?
Jacob Vlijm

Réponses:

47

Une autre option, en utilisant xrandr, est la commande:

xrandr | grep ' connected'

Sortie:

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

(attention l'espace avant connected, sinon disconnectedsera inclus)

Différences importantes entre xdpyinfoetxrandr

  • Alors que les xrandrécrans sont listés séparément (dans le cas de plusieurs moniteurs), xdpyinfogénère un seul jeu de dimensions pour tous les écrans ensemble ("taille du bureau" au lieu de la taille de l'écran)
  • Comme l'a remarqué @agold, il y a (assez) une différence entre les deux, qui semble trop grande pour être une simple différence d'arrondi:

    xrandr: 473mm x 296mm
    xdpyinfo: 445x278
    

Il semble lié à un bug dans xdpyinfo. Voir aussi ici .

Si vous insistez pour pouces

Utilisez le petit script ci-dessous; il affiche la taille de votre écran en pouces; largeur / hauteur / diagonale (pouces)

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

Pour l'utiliser:

Copiez le script dans un fichier vide, enregistrez-le sous get_dimensions.py, exécutez-le à l'aide de la commande suivante:

python3 /path/to/get_dimensions.py

Sortie sur mes deux écrans:

width - height - diagonal (inches)

[18.6, 11.7, 22.0]
[14.8, 11.9, 19.0]



modifier

Version de fantaisie du même script (avec quelques améliorations et une sortie plus agréable), ressemblant à:

Screen  width   height  diagonal
--------------------------------
DVI-I-1 18.6    11.7    22.0
VGA-1   14.8    11.9    19.0

Le script:

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

"Kind of" sur demande (dans un commentaire), une version modernisée / plus avancée / améliorée (pas d'appels système, pas d'analyse mais utilisant Gdk.Display), faisant à peu près exactement la même chose:

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

Sortie:

Screen  width   height  diagonal
--------------------------------
eDP-1   20.0    11.3    23.0
HDMI-1  18.6    11.7    22.0

Je vais laisser la réponse initiale, car il semble inapproprié de supprimer la réponse après une aussi longue période, qui a généré les votes existants.

Jacob Vlijm
la source
Juste une note de côté, mais les deux réponses me donnent des résultats différents: xdpyinfo"474x303 millimètres" et xrandr"473mm x 296mm".
mardi
1
@ agold Maintenant, c'est intéressant. Une différence d'arrondi. Une autre chose intéressante est que xdpyinfola taille du bureau (les deux écrans) est affichée, pas la taille de l'écran!
Jacob Vlijm
@ agold la différence est beaucoup trop grande pour une différence d'arrondi !! Voir mon édition.
Jacob Vlijm
oui, c'est assez gros, mais comment ces programmes obtiennent-ils cette information? S'agit-il de méta-informations provenant du moniteur ou est-ce estimé à partir d'autres paramètres ...?
mardi
@agold Cela semble être lié à un bogue dans xdpyinfo: bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/201491 Bien que le rapport soit assez ancien, je ne le vois pas corrigé. Voir aussi: bbs.archlinux.org/viewtopic.php?id=204823
Jacob Vlijm
14

Juste au cas où vous voudriez une réponse plus générale, vous pouvez couper le nœud gordien et utiliser une règle physique non geek pour cela. Selon ce wiki , "la taille d'un écran est généralement décrite par la longueur de sa diagonale ":

entrez la description de l'image ici

Si vous avez une règle qui n’affiche que des centimètres , vous pouvez utiliser la conversion simple :

1 cm = 0.393701 in
(or 2.54 cm = 1 in)

Donc, si votre règle mesure 30 centimètres , votre écran est de 11,811 pouces. Vous pouvez également utiliser Google avec une requête du formulaire 30 cm to in.


Crédits image: https://en.wikipedia.org/wiki/File:Display_size_measurements.png

phresnel
la source
Ask Ubuntu est un site de solutions logicielles, votre réponse est donc un peu hors sujet ici ... Par contre, elle est correcte, bien écrite, très lisible et amusante! :-) Alors voté!
Fabby
1
@ dn-ʞɔɐqɹW: En fait, c'est basé sur une erreur de mon côté. J'ai lu la question «Comment puis-je obtenir la taille du moniteur de mon ordinateur portable?
phresnel
En remarque, un pouce équivaut à 25,4 mm exactement.
Paddy Landau
6

Xdpyinfoest un utilitaire permettant d’afficher des informations sur un serveur X. Il est utilisé pour examiner les capacités d'un serveur, les valeurs prédéfinies pour divers paramètres utilisés dans la communication entre les clients et le serveur, ainsi que les différents types d'écrans et de visuels disponibles.

La commande pour obtenir la taille du moniteur est la suivante:

xdpyinfo | grep dimensions

Résultat

dimensions:    1366x768 pixels (361x203 millimeters)
Parto
la source
1
Salut Parto, je aime vraiment votre réponse +1, cependant, regardez ici: bbs.archlinux.org/viewtopic.php?id=204823 il y a une énorme différence dans les dimensions des xdpyinforapports et xrandr.
Jacob Vlijm
@Jacob Quelque chose d'intéressant - askubuntu.com/questions/378386/…
Parto
1
Lorsque je mesure avec un bon vieux mètre à ruban de qualité physique, j’obtiens à peu près exactement la sortie de xrandr: 473mm sur mon écran , alors que les xdpyinforapports sont bien trop courts ( 445mm). Cette question s’avère être plus intéressante
qu’OP
0

C’était quelque chose avec lequel moi aussi je me débattais (lorsque je voulais passer à un nouveau moniteur et que je voulais savoir quelle taille mon ancien moniteur était), j’ai donc écrit un script shell qui trouve la taille du moniteur pour vous.

J'ai utilisé les xdpyinforéponses de la première réponse pour obtenir les dimensions de l'écran et les construire à l'avance. Le script calcule essentiellement la diagonale à partir des dimensions de l'écran, convertissant des millimètres en pouces et affiche le résultat.

URL du référentiel: https://github.com/abhishekvp/WhatsMyScreenSize

J'espère que cela t'aides!

Abhishek Potnis
la source