存在する素晴らしいウィンドウマネージャ、数分間コンピュータから場所を空にするたびに、画面の明るさが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を使用して削除する方が簡単かもしれません。