2つの出力が並んでおり、i3-wmを使用しています。以下を実行するシェルスクリプトを作成したいと思います。
# if output <BBB> is connected, but off
xrandr --output <BBB> --right-of <AAA> --mode 1920x1080
# if output <BBB> is connected, and on
xrandr --output <BBB> --off
より良いゲームパフォーマンスのためにモニター構成を切り替えています(〜5〜15%FPS増加)。
ベストアンサー1
これは働きます:
xrandr --listactivemonitors | grep <BBB> >/dev/null && xrandr --output <BBB> --off || xrandr --output <BBB> --right-of <AAA> --mode 1920x1080
説明する:
xrandr --listactivemonitors
現在開いているモニターのみを印刷します。grep <BBB> >/dev/null
切り替えたいモニターの名前の前の出力を検索します。見つかった場合、grep はシェルが true と解釈する終了コードを返します。見つからない場合、シェルが false と解釈する終了コードを返します。画面が複雑になるのを防ぐために、出力は/ dev / nullに送信されます。&& xrandr --output <BBB> --off
grep がアクティブ・モニター・リストでモニターを検索すると、実行され、モニターがクローズされます。ただし、grep が無効な終了コードで終了すると、評価対象が何であれ、論理 AND 句全体が既に無効であることがわかっているため実行されません。|| xrandr --output <BBB> --right-of <AAA> --mode 1920x1080
grepがそれを見つけられない場合、この句が実行されてモニタが開きます。前の句(grep ... && xrandr ...
)はfalseと評価されているため実行されます。このロジックまたは句が真であることを確認するには、シェルは右側を評価する必要があります。一方、左がすでに真と評価されている場合、右は評価する必要がないため実行されません。
簡単な記事です論理条件に応じて制御フローが調整される。