从Linux桌面的命令行获取显示分辨率


Answers:



11

替代解决方案:xdpyinfo | grep dimensionsxdpyinfo早于xrandr,因此如果您碰巧使用非常老的发行版或其他X服务器,则可能更便于携带。


2
确实,但是某些(所有?)多显示器设置显示为一个屏幕,xdpyinfo同时xrandr正确枚举了屏幕及其分辨率。根据上下文,这可能是问题,也可能不是问题。
斯特凡纳·古里科

注意:虽然xdpyinfo似乎报告正确的像素尺寸,但报告的分辨率(DPI)错误。例如,我的dimesions 3840X2160(本地实际)显示器和尺寸上708毫米X399毫米通过报道xrandrxdpyinfo说分辨率是每英寸96×96点。
Ruslan '18

7

您可以使用以下命令获取水平和垂直分辨率:

xdpyinfo | grep dimensions | awk '{print $2}' | awk -Fx '{print $1, $2}'

或者,以更紧凑的形式(如Peter.O在评论中所建议):

xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}' 

例如,在1600x900的显示屏上,将产生以下输出:

1600 900

然后可以使用以下命令将值放入单独的变量中:

read RES_X RES_Y <<<$(xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}')

使用命令显示以上变量的值:

echo $RES_X, $RES_Y

在1600x900的显示器上,输出为:

1600, 900

1
xdpyinfo | awk -F'[x] +''/ dimensions:/ {print $ 3,$ 4}'
Peter.O 2015年

@ Peter.O,谢谢。这是命令的一种紧凑形式。我已经更新了答案。
crayzeewulf 2015年

确实,但是某些(所有?)多显示器设置在xdpyinfo中显示为一个屏幕,而xrandr正确枚举了屏幕及其分辨率。根据上下文,这可能是问题,也可能不是问题。
斯特凡纳·古里科

5

发布之前,我本应该看上去有些努力。xrandr如果未提供任何其他参数,将回显当前显示设置。

默认情况下,这将转储所有可能的显示设置,可以按以下方式对其进行过滤:

xrandr | egrep '^[^ ]|[0-9]\*\+'

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.