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
(lembre-se do espaço antes connected, mais disconnectedserá incluído)
Diferenças importantes entre xdpyinfoexrandr
Enquanto xrandrlista as telas separadamente (no caso de vários monitores), xdpyinfogera um único conjunto de dimensões para todas as telas juntas ("tamanho da área de trabalho" em vez do tamanho da tela)
Como observado pelo @agold, há (bastante) uma diferença entre os dois, que parece grande demais para ser uma simples diferença de arredondamento:
xrandr: 473mm x 296mm
xdpyinfo: 445x278
Parece relacionado a um bug no xdpyinfo. Veja também aqui .
Se você insistir em polegadas
Use o pequeno script abaixo; gera o tamanho da (s) tela (s) em polegadas; largura / altura / diagonal (polegadas)
#!/usr/bin/env python3import 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]])
Para usá-lo:
Copie o script em um arquivo vazio, salve-o como get_dimensions.py, execute-o pelo comando:
#!/usr/bin/env python3import 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",""))))exceptValueError:passprint(("\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 (maio de 2019)
"Kind of", mediante solicitação (em um comentário), uma versão modernizada / mais avançada / aprimorada (sem chamadas do sistema, sem análise, mas usando o Gdk.Display), fazendo exatamente o mesmo:
#!/usr/bin/env python3import gi
gi.require_version('Gdk','3.0')from gi.repository importGdk
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]]))
Apenas uma observação, mas ambas as respostas me dão resultados diferentes: xdpyinfo"474x303 milímetros" e xrandr"473mm x 296mm".
agold
11
@agold Agora isso é interessante. Uma diferença de arredondamento. Outra coisa interessante é que xdpyinfogera o tamanho da área de trabalho (ambas as telas), não o tamanho da tela!
Jacob Vlijm
@agold a diferença é muito grande para uma diferença de arredondamento !! Veja minha edição.
Jacob Vlijm
sim, é bastante grande, mas como esses programas obtêm essas informações? São algumas metainformações provenientes do monitor ou são estimadas com base em outros parâmetros ...?
Caso queira uma resposta mais geral, você pode cortar o nó gordiano e usar uma régua física não nerd para isso. De acordo com este wiki , o "tamanho de uma tela é geralmente descrito pelo comprimento de sua diagonal ":
Se você possui uma régua que exibe apenas centímetros , pode usar a conversão simples :
1 cm = 0.393701 in
(or 2.54 cm = 1 in)
Portanto, se sua régua medir 30 centímetros , sua tela terá 11,811 polegadas. Você também pode usar o google com uma consulta do formulário 30 cm to in.
O Ask Ubuntu é um site de soluções de software, então sua resposta é um pouco fora de tópico aqui ... Por outro lado, é correto, bem escrito, muito legível e engraçado! :-) Tão votado!
Fab22
11
@ dn-ʞɔɐqɹW: Na verdade, é baseado em um erro do meu lado. Li a pergunta "Como posso obter o tamanho do monitor do meu laptop?", E meu primeiro pensamento foi "bem, com uma régua" e, antes de ler a pergunta completa, tive minha resposta entalhada no bloco de pedra.
phresnel 22/02
Como nota lateral, uma polegada é igual a 25,4 mm exatamente.
Paddy Landau
6
Xdpyinfoé um utilitário para exibir informações sobre um servidor X. É usado para examinar os recursos de um servidor, os valores predefinidos para vários parâmetros usados na comunicação entre clientes e o servidor e os diferentes tipos de telas e recursos visuais disponíveis.
Oi Parto, eu realmente gosto da sua resposta +1, no entanto, veja aqui: bbs.archlinux.org/viewtopic.php?id=204823 há uma enorme diferença nos xdpyinforelatórios de dimensões e xrandr.
Ao medir com um bom old qualidade física fita métrica, eu fico na minha tela muito bonito exatamente a saída xrandr: 473 milímetros, enquanto xdpyinforelatórios maneira muito curta ( 445mm). Esta questão torna-se mais interessante OP, em seguida, assumiu Eu acho que :)
Jacob Vlijm
0
Isso era algo com o qual eu também estava lutando (quando eu queria atualizar para um novo monitor para mim e queria saber qual era o tamanho do meu monitor antigo), então escrevi um script de shell que encontra o tamanho do monitor para você.
Eu usei o xdpyinfoda primeira resposta para obter as dimensões da tela e construí-lo à frente. O script calcula essencialmente a diagonal das dimensões da tela, convertendo de milímetros em polegadas e exibe o resultado.
Respostas:
Outra opção, usando
xrandr
, é o comando:Saída:
(lembre-se do espaço antes
connected
, maisdisconnected
será incluído)Diferenças importantes entre
xdpyinfo
exrandr
xrandr
lista as telas separadamente (no caso de vários monitores),xdpyinfo
gera um único conjunto de dimensões para todas as telas juntas ("tamanho da área de trabalho" em vez do tamanho da tela)Como observado pelo @agold, há (bastante) uma diferença entre os dois, que parece grande demais para ser uma simples diferença de arredondamento:
Parece relacionado a um bug no
xdpyinfo
. Veja também aqui .Se você insistir em polegadas
Use o pequeno script abaixo; gera o tamanho da (s) tela (s) em polegadas; largura / altura / diagonal (polegadas)
Para usá-lo:
Copie o script em um arquivo vazio, salve-o como
get_dimensions.py
, execute-o pelo comando:Saída nas minhas duas telas:
Editar
Versão sofisticada do mesmo script (com algumas melhorias e uma saída melhor), parecido com:
O script:
EDIT 2 (maio de 2019)
"Kind of", mediante solicitação (em um comentário), uma versão modernizada / mais avançada / aprimorada (sem chamadas do sistema, sem análise, mas usando o Gdk.Display), fazendo exatamente o mesmo:
Saída:
Deixarei a resposta original, pois parece inapropriado remover a resposta depois de tanto tempo que gerou os votos existentes.
fonte
xdpyinfo
"474x303 milímetros" exrandr
"473mm x 296mm".xdpyinfo
gera o tamanho da área de trabalho (ambas as telas), não o tamanho da tela!xdpyinfo
: bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/201491 Embora o relatório é bastante antigo, eu não vê-lo fixo. Veja também: bbs.archlinux.org/viewtopic.php?id=204823Caso queira uma resposta mais geral, você pode cortar o nó gordiano e usar uma régua física não nerd para isso. De acordo com este wiki , o "tamanho de uma tela é geralmente descrito pelo comprimento de sua diagonal ":
Se você possui uma régua que exibe apenas centímetros , pode usar a conversão simples :
Portanto, se sua régua medir 30 centímetros , sua tela terá 11,811 polegadas. Você também pode usar o google com uma consulta do formulário
30 cm to in
.Créditos da imagem: https://en.wikipedia.org/wiki/File:Display_size_measurements.png
fonte
Xdpyinfo
é um utilitário para exibir informações sobre um servidor X. É usado para examinar os recursos de um servidor, os valores predefinidos para vários parâmetros usados na comunicação entre clientes e o servidor e os diferentes tipos de telas e recursos visuais disponíveis.O comando para obter o tamanho do monitor é:
Resultado
fonte
xdpyinfo
relatórios de dimensões exrandr
.xrandr
: 473 milímetros, enquantoxdpyinfo
relatórios maneira muito curta (445mm
). Esta questão torna-se mais interessante OP, em seguida, assumiu Eu acho que :)Isso era algo com o qual eu também estava lutando (quando eu queria atualizar para um novo monitor para mim e queria saber qual era o tamanho do meu monitor antigo), então escrevi um script de shell que encontra o tamanho do monitor para você.
Eu usei o
xdpyinfo
da primeira resposta para obter as dimensões da tela e construí-lo à frente. O script calcula essencialmente a diagonal das dimensões da tela, convertendo de milímetros em polegadas e exibe o resultado.URL do repositório: https://github.com/abhishekvp/WhatsMyScreenSize
Espero que isto ajude!
fonte