Bash

用腳本切換螢幕解析度,如何?

  • June 29, 2022

如何使用 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 4
elif <current resolution is 1600x900>
then
 xrandr -s 0
else
<do nothing>
fi

基本上我需要一種方法讓腳本辨識星號所在的行並將其切換到另一行。那將如何實現?

使用程序替換:

#! /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

引用自:https://unix.stackexchange.com/questions/708029