배쉬 스크립트

배쉬 스크립트

그래서 저는 OLED 디스플레이가 장착된 Alienware 13 R3를 가지고 있는데 처음으로 xrandr 명령을 사용하여 밝기를 변경할 수 있었습니다. 문제는 OLED 디스플레이에 백라이트가 없어서 키보드나 다른 방법으로 밝기를 변경할 수 없다는 점이었습니다. 이제 변경할 수 있다는 것을 알았으므로 밝기를 0.1로 변경하는 키 바인딩을 추가하겠습니다. 밝기를 변경하려면 다음 명령을 사용했습니다.

xrandr --output eDP-1-1 --brightness .5

밝기를 설정하지 않고 특정 값만큼 늘리거나 줄여 매크로를 바인딩할 수 있도록 어떤 명령을 사용해야 하는지 아는 사람이 있나요? 미리 감사드립니다!

추신: 저는 Linux를 처음 접하는 사람이므로 너무 무리하지 마세요. :P

답변1

아래 bash 스크립트를 다음 파일에 복사하세요.bright

그런 다음 실행 가능으로 표시하십시오.chmod a+x bright

배쉬 스크립트

#!/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 명령을 쉽게 검색할 수 있기를 바라지만 질문이 있으면 주저하지 말고 문의하세요 :)

bc답변을 게시한 지 8분 후에 부동 소수점 연산을 사용하여 코드를 10줄까지 절약할 수 있었고 1.5시간 동안 작성하는 데 많은 시간을 절약할 수 있다는 생각이 들었습니다.어깨를 으쓱하다.

관련 정보