Risposte:
Un'altra opzione, utilizzando xrandr
, è il comando:
xrandr | grep ' connected'
Produzione:
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
(attenzione allo spazio precedente connected
, altrimenti disconnected
verrà incluso)
xdpyinfo
exrandr
xrandr
elenca le schermate separatamente (nel caso di più monitor), xdpyinfo
genera insieme un unico set di dimensioni per tutte le schermate ("dimensioni del desktop" anziché dimensioni dello schermo)Come notato da @agold c'è (abbastanza) una differenza tra i due, che sembra troppo grande per essere una semplice differenza di arrotondamento:
xrandr: 473mm x 296mm
xdpyinfo: 445x278
Sembra correlato a un bug in xdpyinfo
. Vedi anche qui .
Usa il piccolo script qui sotto; genera la dimensione del tuo schermo (s) in pollici; larghezza / altezza / diagonale (pollici)
#!/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]])
Copia lo script in un file vuoto, salvalo come get_dimensions.py
, eseguilo con il comando:
python3 /path/to/get_dimensions.py
Uscita sui miei due schermi:
width - height - diagonal (inches)
[18.6, 11.7, 22.0]
[14.8, 11.9, 19.0]
Versione elaborata dello stesso script (con alcuni miglioramenti e un output migliore), simile a:
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]]))
"Kind of" su richiesta (in un commento), una versione modernizzata / più avanzata / migliorata (nessuna chiamata di sistema, nessuna analisi ma usando Gdk.Display), facendo praticamente la stessa cosa:
#!/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]]))
Produzione:
Screen width height diagonal
--------------------------------
eDP-1 20.0 11.3 23.0
HDMI-1 18.6 11.7 22.0
Lascerò la risposta originale, poiché sembra inappropriato rimuovere la risposta dopo così tanto tempo, che ha generato i voti esistenti.
xdpyinfo
margine , ma entrambe le risposte mi danno risultati diversi: mi dà "474x303 millimetri" e xrandr
"473mm x 296mm".
xdpyinfo
genera le dimensioni del desktop (entrambi gli schermi), non le dimensioni dello schermo!
xdpyinfo
: bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/201491 Anche se il rapporto è piuttosto vecchio, non lo vedo corretto. Vedi anche: bbs.archlinux.org/viewtopic.php?id=204823
Nel caso in cui desideri una risposta più generale, puoi tagliare il nodo gordiano e usare un righello fisico non geek per quello. Secondo questa wiki , la "dimensione di uno schermo è solitamente descritta dalla lunghezza della sua diagonale ":
Se hai un righello che mostra solo centimetri , puoi usare la semplice conversione :
1 cm = 0.393701 in
(or 2.54 cm = 1 in)
Quindi, se il tuo righello misura 30 centimetri , lo schermo è 11,811 pollici. Puoi anche utilizzare google con una query del modulo 30 cm to in
.
Crediti immagine: https://en.wikipedia.org/wiki/File:Display_size_measurements.png
Xdpyinfo
è un'utilità per visualizzare informazioni su un server X. Viene utilizzato per esaminare le capacità di un server, i valori predefiniti per vari parametri utilizzati nella comunicazione tra client e server e i diversi tipi di schermate e elementi visivi disponibili.
Il comando per ottenere le dimensioni del monitor è:
xdpyinfo | grep dimensions
Risultato
dimensions: 1366x768 pixels (361x203 millimeters)
xdpyinfo
rapporti sulle dimensioni e xrandr
.
xrandr
: 473 millimetri, mentre xdpyinfo
i rapporti modo troppo breve ( 445mm
). Questa domanda risulta essere più interessante di quanto OP abbia ipotizzato immagino :)
Questo era qualcosa con cui anch'io stavo lottando (quando volevo passare a un nuovo monitor per me stesso e volevo sapere quale era la dimensione del mio vecchio monitor), quindi ho scritto uno script di shell che trova la dimensione del monitor per te.
Ho usato la xdpyinfo
prima risposta per ottenere le dimensioni dello schermo e costruirci sopra. Lo script calcola essenzialmente la diagonale dalle dimensioni dello schermo, convertendola da millimetri a pollici e visualizza il risultato.
URL del repository: https://github.com/abhishekvp/WhatsMyScreenSize
Spero che sia di aiuto!