해결하려면 버그 # 1005495 (불가능 단축키를 통해 LCD 밝기를 변경), 내 LCD의 밝기를 줄이기위한 하나의 명령 행 증가에 대한 쿼리 및 하나를 가지고 싶습니다. 그런 다음이 쿼리 각각에 핫키를 매핑 할 수 있습니다.
문제는 : 나는 커맨드 라인에서 LCD 밝기를 늘리고 줄이는 방법을 모른다. 당신 은요?
해결하려면 버그 # 1005495 (불가능 단축키를 통해 LCD 밝기를 변경), 내 LCD의 밝기를 줄이기위한 하나의 명령 행 증가에 대한 쿼리 및 하나를 가지고 싶습니다. 그런 다음이 쿼리 각각에 핫키를 매핑 할 수 있습니다.
문제는 : 나는 커맨드 라인에서 LCD 밝기를 늘리고 줄이는 방법을 모른다. 당신 은요?
답변:
우리가 이것을 해야하는 또 다른 방법은 xbacklight라는 다른 새로운 프로그램을 사용하여 터미널을 열고 이것을 입력하는 것입니다
sudo apt-get install xbacklight
그런 다음 이것을 입력하십시오 xbacklight -set 50
50은 밝기 범위를 나타내며 0에서 100까지 얻을 수 있습니다.
현재 값에서 지정된 수준으로 밝기를 높이거나 낮출 수 있습니다. 현재 밝기 값에서 10 %로 높이려면
xbacklight -inc 10
10 %를 줄이려면
xbacklight -dec 10
경고 : xbacklight
인텔에서만 작동하며 Radeon에서는 제대로 작동하지 않으며 모드 설정 드라이버 ( source ) 에서는 작동하지 않습니다 .
xbacklight +10; xbacklight -10; xbacklight =50;
터미널을 열고 이것을 입력하십시오
xrandr -q | grep " connected"
그것은 당신에게 출력을 줄 것이다
LVDS1 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
LVDS1 디스플레이를 나타냅니다. 이제는
xrandr --output LVDS1 --brightness 0.5
0.5는 밝기 수준을 나타내며 0.0에서 1.0 사이입니다. 0.0-> Full black. 필요한 밝기 값을 선택해야합니다.
이것은 하드웨어 수준의 밝기를 변경하지 않는다 . 에서 randr
수동 :
--brightness brightness
현재 출력에 연결된 crtc 의 감마 값을 지정된 부동 값에 곱합니다 . 지나치게 밝거나 지나치게 어두운 출력에 유용합니다. 그러나 이것은 소프트웨어 전용 수정 이므로 하드웨어에서 실제로 밝기를 변경하도록 지원하는 경우 xbacklight를 사용하는 것이 좋습니다.
다음은 나를 위해 작동합니다.
echo 400 | sudo tee /sys/class/backlight/intel_backlight/brightness
가능한 최대 값이 /sys/class/backlight/intel_backlight/max_brightness
파일 에 있다고 생각 합니다.
intel_backlight
별표로 교체 하여 모든 백라이트에 적용 하십시오 .
echo 400 | sudo tee /sys/class/backlight/intel_backlight/brightness
.
sudo echo 400 > /sys/class . .. ./brightness
리디렉션 할 때 @Ray 는 echo가 아닌 shell에 의해 수행됩니다. 그리고 쉘은 여전히 sudo가 아닌 일반 사용자로 실행됩니다. 이것이 권한이 거부 된 이유입니다. 루트 권한으로 파일에 쓸 유틸리티가 있어야하므로 tee
작동합니다.
echo 400 | sudo tee /sys/class/backlight/radeon_bl0/brightness
Radeon APU 및 카드
sudo chmod 0646
brightness
sudo
노트북의 경우
sudo setpci -s 00:02.0 F4.B=80
변경 80
에 의해 [0-FF]
가장 낮은 가장 높은 밝기를 얻을 수 있습니다. 지정된 값은 진수에, 그래서 80
당신에게 줄 것이다 50%
최대 밝기를.
데스크탑에서 감마 보정을 수행하려면 (나에 의해 테스트되지 않음),
xgamma -gamma .75
setpci
작동하지 않았지만 작동했습니다 xgamma
.
이 스크립트를 작성하십시오.
set-brightness.sh
#!/bin/bash
TARGET="acpi_video0"
cd /sys/class/backlight
MAX="$(cat "${TARGET}/max_brightness")"
# The `/1` at the end forced bc to cast the result
# to an integer, even if $1 is a float (which it
# should be)
LOGIC="$(echo "($1 * ${MAX})/1" | bc)"
for i in */; do
if [[ "${TARGET}/" != "$i" && -e "${i}brightness" ]]; then
cat "${i}max_brightness" > "${i}brightness"
fi
done
echo "$LOGIC" > "${TARGET}/brightness"
0에서 1 사이의 값으로 루트로 실행하십시오.
sudo ./set-brightness.sh 0.5
/sys/class/backlight/acpi_video0
디렉토리가 하나 이상 있어야하며 디렉토리는 장치마다 다를 수 있습니다 (예 :도 있습니다 radeon_bl0
). acpi_video0
해야 하지만 항상 전체 범위의 물리적 밝기를 사용할 수있는 것은 아닙니다. 각각을 시도하고 가장 큰 영역을 가진 것을 "대상"으로 사용하십시오./sys/class/backlight/*/brightness
를 하드 코딩하는 대신 사용하는 것이 좋습니다 acpi_video0
. 파일 경로를 일반화 할 수 있습니다 . 예를 들어 intel_backlight
, 그렇지 않을 수도 acpi_video0
있습니다. 이것이 제가 여기 스크립트에서
키보드 제어를위한 밝기 단계도이 방법으로 구현할 수 있습니다.
# Step up:
gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepUp
# Step down:
gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepDown
/sys/class/backlight
방법 과 달리 .xbacklight
항상 작동하지는 않습니다 .xrandr
다만 DO가 감마 보정xrandr
감마 및 밝기 스크립트로 제어되는 외부 모니터에는 영향을 미치지 않습니다 .
@palacsint가 말했듯이 echo 244 > /sys/class/backlight/intel_backlight/brightness
경로는 저에게 효과적입니다.
그러나 최대 및 최소 값에 다시 보냈다 /sys/class/backlight/intel_backlight/max_brightness
및 /sys/class/backlight/intel_backlight/bl_power
파일을 각각.
또한 컴퓨터가 현재 실행중인 실제 밝기는 /sys/class/backlight/intel_backlight/actual_brightness
qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl setBrightness 55
위의 코드는 여전히 유효합니다. KDE 사용자 인 경우에만 작동합니다. 그러나이 경우 추가 소프트웨어가 필요하지 않습니다. "배터리 및 밝기"위젯을 사용할 때와 똑같은 동작을합니다. AFAIK는 실제 백라이트를 변경하지만 실제 백라이트는 변경 xrandr
하지 않습니다.
위의 55는 100의 분수가 아니며 후자는 최대 밝기입니다. 대신 max_brightness와 관련이 있습니다.
qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl brightnessMax
스크립트에서 선호하는 "자동"버전도 있습니다.
qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl setBrightnessSilent 2000
위의 답변을 사용 하여이 스크립트 (홈 디렉토리에 brightness.sh로 저장 됨)를 작성하여 디스플레이 밝기를 수정했습니다 (노트북의 키보드에 엎지른 차 문제가 발생하여 사용할 수 없게 됨). 그것을 자유롭게 사용하십시오 (지정된 파일이있는 경우 ... 그렇지 않으면 파일의 변형을 지적하기 위해 어설프게 필요합니다).
#!/bin/bash
function main_menu
{
sudo clear
cursetting=$(cat /sys/class/backlight/intel_backlight/brightness)
maxsetting=$(cat /sys/class/backlight/intel_backlight/max_brightness)
powersave=$((maxsetting/5))
conservative=$((powersave*2))
medium=$((powersave*3))
performance=$((powersave*4))
echo ""
echo "----------------------- Brightness -----------------------"
echo " 1. Set Display to Minimum (Powersave) brightness setting."
echo " 2. Set Display to Low (Conservative) brightness setting."
echo " 3. Set Display to Medium brightness setting."
echo " 4. Set Display to High (Performance) brightness setting."
echo " 5. Set Display to Maximum brightness setting."
echo " 6. Exit."
echo "----------------------------------------------------------"
if [ $cursetting -eq $powersave ]; then
cursetting='Minimum'
else
if [ $cursetting -eq $conservative ]; then
cursetting='Conservative'
else
if [ $cursetting -eq $medium ]; then
cursetting='Medium'
else
if [ $cursetting -eq $performance ]; then
cursetting='Performance'
else
if [ $cursetting -eq $maxsetting ]; then
cursetting='Maximum'
fi
fi
fi
fi
fi
echo " Current Display Setting - "$cursetting;
choice=7
echo ""
echo -e "Please enter your choice: \c"
}
function press_enter
{
echo ""
echo -n "Press Enter to continue."
read
main_menu
}
main_menu
while [ $choice -eq 7 ]; do
read choice
if [ $choice -eq 1 ]; then
echo $powersave | sudo tee /sys/class/backlight/intel_backlight/brightness
main_menu
else
if [ $choice -eq 2 ]; then
echo $conservative | sudo tee /sys/class/backlight/intel_backlight/brightness
main_menu
else
if [ $choice -eq 3 ]; then
echo $medium | sudo tee /sys/class/backlight/intel_backlight/brightness
main_menu
else
if [ $choice -eq 4 ]; then
echo $performance | sudo tee /sys/class/backlight/intel_backlight/brightness
main_menu
else
if [ $choice -eq 5 ]; then
echo $maxsetting | sudo tee /sys/class/backlight/intel_backlight/brightness
main_menu
else
if [ $choice -eq 6 ]; then
exit;
else
echo -e "Please enter the NUMBER of your choice: \c"
choice = 7
fi
fi
fi
fi
fi
fi
done
elif
낫습니다 case
. 또한 google.github.io/styleguide/shell.xml 과 같은 스타일 가이드를 읽고 더 나은 코드를 만드는 데 도움이되는 shellcheck와 같은 린터를 시도하는 것이 좋습니다. 몇 년 전에 스크립팅을 시작했을 때 누군가 나에게 이런 말을했으면 좋겠다. :)
ddccontrol 은 외부 모니터의 백라이트를 제어하기위한 또 다른 옵션입니다. 여기에서 외부 모니터의 백라이트를 전원의 50 %로 설정할 수 있습니다.
ddccontrol -p -r 0x10 -w 50
Redshift 가 밝기 변화를 처리 하는 방식을 개선하기 위해이 문제에 대한 가능한 해결책을 찾았습니다 . 거기에서 나는 리눅스 커널 이 여러 장치들 사이의 호환성을 향상시키기 위한 패치 세트 가 있음을 발견했다 sysfs
.
그 동안 ddccontrol이 여기에서 유일한 방법입니다. 평소와 같이, 아치 위키는 주제에 대한 전반적인 문서 가 훌륭 합니다.
인터랙티브 ncurses 같은 UI를 사용하여 xbacklight
가난한 사람의 수녀. 명중 h
하면 10 % 감소 l
하고 , 명중 하면 10 % 증가합니다. 그런 다음 현재 광도를 표시하십시오.
xback() (
done=false;
echo "less: h, more: l, quit: q"
while ! $done; do
read -rsn1 key
if [ "$key" = h ]; then
xbacklight -dec 10
elif [ "$key" = l ]; then
xbacklight -inc 10
elif [ "$key" = q ]; then
done=true
fi
printf "\r$(xbacklight -get) "
done
)