如何從 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 選項 - 螢幕根視窗的訊息
echo $(xwininfo -root | grep '幾何' | awk '{print $2;}')
# 輸出:1024x768+0+0
# 高度 x 寬度 + x + y 位置。
######################
## 參考手冊 ##
男子xwininfo

相關內容