我有一台配備 OLED 顯示器的 Alienware 13 R3,這是我第一次能夠使用 xrandr 命令更改亮度。問題是 OLED 顯示器沒有背光,因此我無法使用鍵盤或任何其他方式更改亮度。現在我知道我可以更改它,我想放置一個鍵綁定來更改亮度(假設為 0.1)。我用這個命令來改變亮度:
xrandr --output eDP-1-1 --brightness .5
有誰知道使用什麼命令不設定亮度,而是增加或減少某個值,這樣我就可以將巨集綁定到它。先致謝!
PS 我對 Linux 完全陌生,所以請不要對我太苛刻 :P
答案1
將下面的 bash 腳本複製到名為的檔案中bright
然後將其標記為可執行chmod a+x bright
bash腳本
#!/bin/bash
MON="DP-1-1" # Discover monitor name with: xrandr | grep " connected"
STEP=5 # Step Up/Down brightnes by: 5 = ".05", 10 = ".10", etc.
CurrBright=$( xrandr --verbose --current | grep ^"$MON" -A5 | tail -n1 )
CurrBright="${CurrBright##* }" # Get brightness level with decimal place
Left=${CurrBright%%"."*} # Extract left of decimal point
Right=${CurrBright#*"."} # Extract right of decimal point
MathBright="0"
[[ "$Left" != 0 && "$STEP" -lt 10 ]] && STEP=10 # > 1.0, only .1 works
[[ "$Left" != 0 ]] && MathBright="$Left"00 # 1.0 becomes "100"
[[ "${#Right}" -eq 1 ]] && Right="$Right"0 # 0.5 becomes "50"
MathBright=$(( MathBright + Right ))
[[ "$1" == "Up" || "$1" == "+" ]] && MathBright=$(( MathBright + STEP ))
[[ "$1" == "Down" || "$1" == "-" ]] && MathBright=$(( MathBright - STEP ))
[[ "${MathBright:0:1}" == "-" ]] && MathBright=0 # Negative not allowed
[[ "$MathBright" -gt 999 ]] && MathBright=999 # Can't go over 9.99
if [[ "${#MathBright}" -eq 3 ]] ; then
MathBright="$MathBright"000 # Pad with lots of zeros
CurrBright="${MathBright:0:1}.${MathBright:1:2}"
else
MathBright="$MathBright"000 # Pad with lots of zeros
CurrBright=".${MathBright:0:2}"
fi
xrandr --output "$MON" --brightness "$CurrBright" # Set new brightness
# Display current brightness
printf "Monitor $MON "
echo $( xrandr --verbose --current | grep ^"$MON" -A5 | tail -n1 )
- 變更
MON="DP-1-1"
為您的顯示器名稱,即MON="HDMI-1"
- 使用以下命令發現您的顯示器名稱
xrandr | grep " connected"
- 更改
STEP=5
您的步長值,例如STEP=2
不太明顯
使用以下命令呼叫腳本:
bright Up
或bright +
按步長值增加亮度bright Down
或bright -
按步長值降低亮度bright
(不含參數)取得目前亮度級別
希望 bash / shell 命令可以輕鬆地透過谷歌搜尋進行教育,但如果有任何問題,請隨時提出:)
發布答案後 8 分鐘,我突然想到我可以使用bc
浮點數學,並節省了大約 10 行程式碼以及 1.5 小時的大量時間來編寫它聳肩。