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

Bar*_*den 36 linux xorg display-settings

我正在寻找一种报告显示分辨率的方法。我想设置启动脚本rdesktop,我想在不同分辨率的多台机器上启动它,所以我想要一种动态确定它的方法。

小智 41

使用命令xrandr。没有任何参数,它显示可用分辨率和当前分辨率(带星号),例如:

$ xrandr | fgrep '*'
Run Code Online (Sandbox Code Playgroud)


lio*_*ori 12

替代解决方案:xdpyinfo | grep dimensions. xdpyinfo比 旧xrandr,因此如果您碰巧使用非常旧的发行版或某些不同的 X 服务器,则可能更便携。

  • 确实,但一些(全部?)多显示器设置在 `xdpyinfo` 中显示为一个屏幕,而 `xrandr` 正确枚举屏幕及其分辨率。这可能是也可能不是问题,具体取决于上下文。 (3认同)

cra*_*ulf 9

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

xdpyinfo | grep dimensions | awk '{print $2}' | awk -Fx '{print $1, $2}'
Run Code Online (Sandbox Code Playgroud)

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

xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}' 
Run Code Online (Sandbox Code Playgroud)

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

1600 900
Run Code Online (Sandbox Code Playgroud)

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

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

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

echo $RES_X, $RES_Y
Run Code Online (Sandbox Code Playgroud)

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

1600, 900
Run Code Online (Sandbox Code Playgroud)

  • xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}' (2认同)

Bar*_*den 5

在发帖之前我应该​​看起来更努力一点。xrandr如果没有给出任何其他参数,将回显当前显示设置。

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

xrandr | egrep '^[^ ]|[0-9]\*\+'
Run Code Online (Sandbox Code Playgroud)