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

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

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

答案1

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

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

答案2

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)

输出:

Xaxis = 1280
Yaxis = 1024

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

MaxRes=$(($Xaxis-5))"x"$(($Yaxis-25))

输出:

MaxRes = 1275x999

这是 rDesktop 在不全屏的情况下的最大分辨率。

结束命令:

rdesktop -u $User -P -z -5 -g $MaxRes $Host &

到目前为止它运行良好,但我还没有彻底测试过。

另一个示例是使用以下方式进行屏幕录制avconv

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

答案3

一个非常简单的方法是读出modessys 目录中的文件:

cat /sys/class/graphics/*/modes

或分别

cat /sys/class/graphics/*/virtual_size

答案4

#############################################
## 我将它与视频录制程序一起使用。
# 窗口大小 --root 选项 - 有关屏幕根窗口的信息
回显 $(xwininfo -root | grep 'geometry' | awk '{print $2;}')
# 输出:1024x768+0+0
# 高度 x 宽度 + x + y 位置。
######################
## 参考手册 ##
人xwininfo

相关内容