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

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

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

谢谢

答案1

另一个选项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将被包括在内)

xdpyinfo和之间的重要区别xrandr

  • 虽然xrandr单独列出屏幕(如果有多个显示器),但xdpyinfo会为所有屏幕一起输出一组尺寸(“桌面尺寸”而不是屏幕尺寸)
  • 正如 @agold 所注意到的,两者之间存在(相当大的)差异,这种差异似乎太大,以至于不能成为简单的四舍五入差异:

    xrandr: 473mm x 296mm
    xdpyinfo: 445x278
    

似乎与一个错误xdpyinfo另请参阅这里

如果你坚持英寸

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

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



编辑

想要同一脚本的版本(有一些改进和更好的输出),如下所示:

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

根据要求“有点”(在评论中),一个现代化/更先进/改进的(没有系统调用,没有解析但使用 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

我将保留原始答案,因为在这么长时间之后删除产生现有投票的答案似乎是不合适的。

答案2

这个怎么样:

xrandr | awk '/ connected/{print sqrt( ($(NF-2)/10)^2 + ($NF/10)^2 )/2.54" inches"}'

并通过 SSH:

ssh server DISPLAY=:0 xrandr | awk '/ connected/{print sqrt( ($(NF-2)/10)^2 + ($NF/10)^2 )/2.54" inches"}'

答案3

如果你想要一个更一般的答案,你可以剪切难题并使用非极客物理统治者为此。根据本维基屏幕的尺寸通常用其长度来描述对角线“:

在此处输入图片描述

如果您有仅显示厘米,您可以使用简单的转换

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

所以如果你的尺子测量30厘米,你的屏幕是11.811英寸。您还可以使用谷歌使用以下形式的查询30 cm to in


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

答案4

这也是我所苦苦挣扎的事情(当我想为自己升级到新显示器并想知道我的旧显示器的尺寸时),因此我编写了一个 shell 脚本来为您查找显示器尺寸。

我使用xdpyinfo第一个答案中的方法来获取屏幕尺寸并在此基础上进行构建。该脚本本质上是根据屏幕尺寸计算对角线,从毫米转换为英寸并显示结果。

存储库 URL:https://github.com/abhishekvp/WhatsMyScreenSize

希望这可以帮助!

相关内容