当前位置: 首页>>技术问答>>正文


如何获得笔记本电脑的显示器尺寸?

,

问题描述

什么是Ubuntu linux命令来查找笔记本电脑的显示器尺寸?如果可能的话,我想用英寸知道。

谢谢

最佳解决思路

使用xrandr的另一个选项是命令:

xrandr | grep ' connected'

输出:

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

(注意connected之前的空格,否则将包括disconnected)

xdpyinfoxrandr的重要区别

  • 虽然xrandr单独列出屏幕(如果是多个显示器),xdpyinfo会同时为所有屏幕输出一组尺寸(“desktop size”而不是屏幕尺寸)

  • 正如@agold所注意到的那样,两者之间存在着(相当)的差异,这看起来太大而不是一个简单的舍入差异:

    xrandr: 473mm x 296mm
    xdpyinfo: 445x278
    

它似乎与xdpyinfo中的a bug有关。另请参见here

如果你坚持英寸

使用下面的小脚本;它以英寸为单位输出屏幕尺寸;宽度/高度/对角线(英寸)

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

要使用它:

将脚本复制到空文件中,将其另存为get_dimensions.py,然后通过以下命令运行:

python3 /path/to/get_dimensions.py

我的两个屏幕输出:

width - height - diagonal (inches)

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


Edit

同一个脚本的精美版本(有一些改进和更好的输出),看起来像:

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

编辑2(2019年5月)

“Kind of”根据要求(在评论中),现代化/更高级/改进(没有系统调用,没有解析但使用Gdk.Display)版本,几乎完全相同:

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

输出:

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

我会留下原来的答案,因为在如此长的时间之后删除答案似乎是不合适的,这产生了现有的选票。

次佳解决思路

如果您想要更一般的答案,可以切割the gordian knot,并使用non-geeky物理ruler。根据this wiki,“屏幕大小通常用其diagonal的长度来描述”:

monitor,ubuntu

如果您的标尺只显示centimeters,则可以使用简单的conversion

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

因此,如果您的标尺尺寸为30厘米,则屏幕为11.811英寸。您还可以将google30 cm to in格式的查询一起使用。


图片来源:https://en.wikipedia.org/wiki/File:Display_size_measurements.png

第三种解决思路

Xdpyinfo是用于显示有关X服务器的信息的实用程序。它用于检查服务器的功能,客户端和服务器之间通信中使用的各种参数的预定义值,以及可用的不同类型的屏幕和视觉效果。

获取监视器大小的命令是:

xdpyinfo | grep dimensions

结果

dimensions:    1366x768 pixels (361x203 millimeters)

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6979.html,未经允许,请勿转载。