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
現在の解像度が1600×900であることを確認して実行するにはどうすればよいですか?xrandr -s 0
現在の解像度が1920×1080の場合は実行する必要がありますかxrandr -s 4
?
簡単に言うと、問題は、xrandr -q の出力を認識して解像度を切り替えるためにスクリプトを作成する方法です。たとえば、
#!/bin/bash
if <current resolution is 1920x1080>
then
xrandr -s 4
elif <current resolution is 1600x900>
then
xrandr -s 0
else
<do nothing>
fi
デフォルトでは、スクリプトでアスタリスクのある行を識別して別の行に切り替える方法が必要です。これがどのように達成されるのか?
答え1
プロセス代替の使用:
#! /bin/bash
read resolution _rest < <(xrandr | grep '\*')
if [[ $resolution = 1920x1080 ]] ; then
xrandr -s 5
elif [[ $resolution = 1600x900 ]] ; then
xrandr -s 0
else
echo Unknown resolution >&2
fi