xrandr を使用して画面解像度をチェックし、現在の解像度に応じて解像度を変更するスクリプトをどのように記述すればよいでしょうか。つまり、解像度を切り替えるということです。
サンプル出力xrandr -q
1920x1080 59.98 + 59.97 59.96 59.93
1680x1050 59.95 59.88
1600x1024 60.17
1400x1050 59.98
1600x900 59.99* 59.94 59.95 59.82
xrandr -s 0
現在の解像度が 1600x900 かどうかを確認して を実行し、現在の解像度が 1920x1080 の場合は を実行するには、どのように記述する必要がありますかxrandr -s 4
?
簡単に言えば、問題は、解像度を切り替えるためにスクリプトに xrandr -q の出力を認識させる方法です。例:
#!/bin/bash
if <current resolution is 1920x1080>
then
xrandr -s 5
elif <current resolution is 1600x900>
then
xrandr -s 0
else
<do nothing>
fi
基本的に、スクリプトがアスタリスクがある行を認識し、他の行に切り替える手段が必要です。これはどのように実現できるでしょうか?
答え1
解決策の例
ソリューションはニーズに応じてカスタマイズできます。
#!/bin/bash
MYRES=$(xrandr -q | grep "\*" | awk '{ print $1; }')
echo -e "\nResolution is $MYRES\n"
case "$MYRES" in
"1920x1080")
echo "Size = 5"
xrandr -s 5
;;
"1680x1050")
echo "Size = 4"
xrandr -s 4
;;
"1600x1024")
echo "Size = 4"
xrandr -s 4
;;
"1400x1050")
echo "Size = 3"
xrandr -s 3
;;
"1600x900")
echo "Size = 0"
xrandr -s 0
;;
*)
echo "Do nothing."
;;
esac