존재하다훌륭한 창 관리자, 몇 분 동안 컴퓨터에서 자리를 비울 때마다 화면 밝기가 100%로 재설정됩니다.화면 보호기/전원 관리 시간 초과 전에 설정된 밝기를 유지하려면 어떻게 해야 합니까?
배경:
사용자동 키, 단축키를 사용하여 화면 밝기를 조정할 수 있는 3개의 스크립트를 만들었습니다. 이 스크립트는 데비안 패키지를 사용하여 brightnessctl
이 작업을 수행합니다.
sudo apt install brightnessctl
다른 사람들을 돕기 위해 아래 스크립트를 포함했습니다.
밝기 증가:
import os
currentBrightness = system.exec_command("brightnessctl g")
brightnessLevel = str(int(currentBrightness) + 1)
if int(brightnessLevel) > 100:
brightnessLevel = '100'
if brightnessLevel:
cmd = "brightnessctl s " + brightnessLevel
os.system(cmd)
store.set_global_value("lastBrightness",brightnessLevel)
밝기 감소:
import os
currentBrightness = system.exec_command("brightnessctl g")
brightnessLevel = str(int(currentBrightness) - 1)
if int(brightnessLevel) < 1:
brightnessLevel = '1'
if brightnessLevel:
cmd = "brightnessctl s " + brightnessLevel
os.system(cmd)
store.set_global_value("lastBrightness",brightnessLevel)
대화상자를 통해 밝기 설정:
import os
currentBrightness = system.exec_command("brightnessctl g")
lastBrightness = store.get_global_value("lastBrightness")
if not lastBrightness:
lastBrightness = '10'
msg = None
if (currentBrightness == lastBrightness):
msg = 'Current Brightness = ' + currentBrightness + '\n\nSpecifiy your desired brightness (max is 100)?'
else:
msg = 'Current Brightness = ' + currentBrightness + '\n\nYou recently changed brightness to ' + lastBrightness + ', but something else changed it since then.\n\nSpecifiy your desired brightness (max is 100)?'
os.system("numlockx on") # Turn Numlock On
#ary = dialog.input_dialog(title="Brightness", message='Specifiy desired brightness (max is 100):', default='5')
ary = dialog.input_dialog(title="Brightness", message=msg, default="10")
brightnessLevel = ary[1]
if brightnessLevel and int(brightnessLevel) > 0:
store.set_global_value("lastBrightness",brightnessLevel)
cmd = "brightnessctl s " + brightnessLevel
os.system(cmd)
이 스크립트는 제대로 작동하지만 한 가지 문제가 있습니다.
몇 분 동안 컴퓨터에서 자리를 비웠다가 다시 돌아오면 모니터가 일종의 절전 상태가 되어 모니터가 꺼지거나 검은색 화면이 표시됩니다. 키를 누르거나 마우스를 움직여 모니터를 깨우면 이전에 설정한 밝기( 를 사용하여 brightnessctl
)가 다시 100% 밝기로 변경되었습니다.
화면 보호기/절전 시간 초과 중에 밝기 설정을 어떻게 유지합니까?
답변1
직접적인 대답은 모르지만 해결 방법은 다음과 같습니다.
원하는 화면 밝기 값을 매개변수 파일에 저장하고 최초 실행 시 적절한 기본값을 사용합니다.
로그인 시 시작되는 데몬 스크립트를 작성합니다(bash 또는 원하는 언어를 사용하여). 대부분의 데스크탑 환경에는 이러한 스크립트를 실행하는 자동 시작 도구가 있습니다. (KDE와 Gnome 모두 이 기능을 가지고 있는데 AWM에 대해서는 잘 모르겠습니다.)
스크립트는 리소스 사용량을 낮게 유지하기 위해 각 반복마다 적절한 지연을 두고 백그라운드에서 영원히 반복됩니다.
각 반복에서 스크립트는 현재 화면 밝기를 읽고 이를 파일의 값과 비교합니다. 서로 다른 경우 밝기를 적절하게 높이거나 낮춥니다.
AutoKey 전역 저장소 변수를 사용하는 대신 파일의 값을 사용/수정하도록 AutoKey 스크립트를 수정합니다.
스크립트는 화면이 꺼지는 시기를 감지하고 아무 작업도 수행하지 않아 실수로 화면이 켜지지 않도록 해야 합니다.
원하는 경우 스크립트가 찾는 항목(예: 다른 파일이나 해당 매개변수 파일의 다른 값)을 추가할 수도 있습니다. 값이 존재하지 않거나 true이면 스크립트가 종료됩니다. 배터리가 부족하거나 매우 낮을 때 전원 관리가 적용될 수 있는 특별한 화면 밝기 설정을 스크립트가 방해하지 않도록 비슷한 것을 원할 수도 있습니다.
그러나 필요할 때 pkill을 사용하여 제거하는 것이 더 쉬울 수도 있습니다.
답변2
다음은 일시 중지된 상태에서 다시 시작한 후 화면 밝기 수준을 유지하는 시스템 서비스를 생성하는 스크립트입니다.
내 홈 폴더에 "scripts"라는 폴더를 만들었습니다. 그런 다음 다음 내용으로 "SetupSustainBrightnessService.sh"라는 파일을 만들었습니다.
# Create directory called "scripts" in home folder:
mkdir ~/scripts
#Go to that folder
cd ~scripts
# Create a file to store a default brightness of 50
echo "50" > default_brightness
# Use nano to save the script into a file:
nano SetupSustainBrightnessService.sh
다음 텍스트를 파일에 저장합니다.
#!/bin/bash
# Directory to store the brightness setting script
script_dir="$HOME/scripts"
# Create the script directory if it doesn't exist
mkdir -p $script_dir
# Create the set-brightness.sh script
cat <<EOL > $script_dir/set-brightness.sh
#!/bin/bash
brightness=\$(cat ~/scripts/default_brightness) # Replace with where you store your brightness setting
brightnessctl set \$brightness
EOL
# Make the script executable
chmod +x $script_dir/set-brightness.sh
# Create the systemd service file
sudo bash -c "cat <<EOL > /etc/systemd/system/set-brightness.service
[Unit]
Description=Set brightness after resume
After=suspend.target
[Service]
Type=simple
ExecStart=$script_dir/set-brightness.sh
[Install]
WantedBy=suspend.target
EOL"
# Reload systemd, enable and start the service
sudo systemctl daemon-reload
sudo systemctl enable set-brightness.service
sudo systemctl start set-brightness.service
echo "Brightness restore script and systemd service have been set up."
스크립트 실행
# Navigate to the scripts folder
cd ~/scripts
# Make script above executable
chmod +x SetupSustainBrightnessService.sh
# Run the script
./SetupSustainBrightnessService.sh
스크립트 실행 결과:
Created symlink /etc/systemd/system/suspend.target.wants/set-brightness.service → /etc/systemd/system/set-brightness.service.
Brightness restore script and systemd service have been set up.
이제 일시 중지에서 다시 시작할 때 systemD는 이전 밝기를 유지하는 setup-brightness-restore.sh 스크립트를 실행합니다.
이 파일에서 1에서 100 사이의 값으로 기본 밝기를 설정하십시오: nano ~/scripts/default_brightness