存在する素晴らしいウィンドウマネージャ、数分間コンピュータから場所を空にするたびに、画面の明るさが100%にリセットされます。スクリーンセーバー/電源管理タイムアウト前に設定された明るさを維持するにはどうすればよいですか?
背景:
使用自動キー、ショートカットを使用して画面の明るさを調整できる3つのスクリプトを作成しました。このスクリプトはDebianパッケージを使用して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)
このスクリプトは正常に動作しますが、1つの問題があります。
数分間コンピュータから場所を空にしてから戻ってくると、モニターは一種のスリープ状態になり、モニターの電源が切れたり、黒い画面が表示されます。キーを押すかマウスを動かしてモニターを目覚めさせると、以前に設定した明るさ(を使用して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