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