如何从 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