如何从 shell 脚本中找出我的屏幕分辨率?

dav*_*420 53 gnome xorg resolution ubuntu

如何从 shell 脚本中找出我的屏幕分辨率?

小智 58

xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/'
Run Code Online (Sandbox Code Playgroud)

命令xdpyinfo显示有关 X 服务器的各种信息。它将很多东西写入标准输出,但我们只需要以单词开头的行dimensions,因此我们使用grep. 最后我们sed用来清理结果。


小智 30

xdpyinfo | grep dimensions将为您提供总分辨率,如果您有多个显示器,它将是所有显示器的总和。xrandr --current将为您提供每台显示器的分辨率。

我使用此代码段来查找 rDesktop 的最大可能分辨率,而无需全屏显示:

Xaxis=$(xrandr --current | grep '*' | uniq | awk '{print $1}' | cut -d 'x' -f1)

Yaxis=$(xrandr --current | grep '*' | uniq | awk '{print $1}' | cut -d 'x' -f2)
Run Code Online (Sandbox Code Playgroud)

输出:

Xaxis = 1280
Yaxis = 1024
Run Code Online (Sandbox Code Playgroud)

减去窗户装饰(或多或少):

MaxRes=$(($Xaxis-5))"x"$(($Yaxis-25))
Run Code Online (Sandbox Code Playgroud)

输出:

MaxRes = 1275x999
Run Code Online (Sandbox Code Playgroud)

这是 rDesktop 不全屏显示的最大分辨率。

结束命令:

rdesktop -u $User -P -z -5 -g $MaxRes $Host &
Run Code Online (Sandbox Code Playgroud)

到目前为止它工作正常,但我还没有彻底测试过。

另一个例子是用于截屏的avconv

avconv -f x11grab -r 15 -s `xrandr --current | grep  '*' | uniq | awk '{print $1}'` -i :0.0 -c:v libx264 ./output.mp4
Run Code Online (Sandbox Code Playgroud)


ric*_*bax 5

你可以使用xrandr -q命令。如果需要,您可以从中创建一个 shell 脚本。

有关命令的更多信息,请转到此处或键入man xrandr