スクリプトで画面解像度を切り替えるにはどうですか?

スクリプトで画面解像度を切り替えるにはどうですか?

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

おすすめ記事