![如何从 shell 脚本中找出我的屏幕分辨率?](https://linux22.com/image/1252957/%E5%A6%82%E4%BD%95%E4%BB%8E%20shell%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E6%89%BE%E5%87%BA%E6%88%91%E7%9A%84%E5%B1%8F%E5%B9%95%E5%88%86%E8%BE%A8%E7%8E%87%EF%BC%9F.png)
如何从 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
一个非常简单的方法是读出modes
sys 目录中的文件:
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