私はAcerAspireE5-773GノートブックでUbuntu16.04を実行しています。残念ながら、ログイン画面で明るさのファンクションキーを使用できないため、画面のバックライトの明るさを変更できるのは、パスワードを入力してログインした後です。
デフォルトでは、Ubuntuは最後のシャットダウン時に設定された輝度レベルで起動しますが、これはたとえば次のようにあまり役に立ちません。時々私は夜遅くに5%前後の明るさでシャットダウンし、翌日再び起動します。すべてを快適に見るには、少なくとも50%の明るさが必要です。逆に、日中に80%の明るさでシャットダウンし、夕方に起動すると、ライトに目がくらむところです…
現在の日中に明るさのレベルで起動するようにUbuntuを構成するにはどうすればよいですか? 22:00から06:00までは10%の明るさ、10:00から16:00までは60%の明るさ、その間に30%の明るさのようなものが欲しいです。簡単に設定できる限り、曲線を滑らかにすることは問題ありません。または、現地の日没/日の出時間に基づいて設定する方法を見つけた場合、それは大きなボーナスになります。 🙂
これらのルールに従って明るさを変更するのは、起動中、またはオプションでサスペンドから復帰したときにのみ行う必要があります。作業中に明るさが自動的に変わることはありません。
ベストアンサー
基本的な考え方:
-
構成ファイルを保存します
/opt/.time_brightness_values
:{ "5,7": 0.25, "8,16": 0.50, "17,22": 0.75 }
引用符で囲まれた値とコンマに注意してください。引用符で囲まれた値の最初の列は24時間形式の時間範囲を表し、2番目の列はパーセンテージです。たとえば、5時から7時に起動した場合、明るさは25パーセントに設定されます。 8時から16時まで起動した場合、50%になります。
-
以下のスクリプトを
/opt/set_timed_brightness.py
として保存します#!/usr/bin/env python3 from __future__ import print_function from collections import OrderedDict import json import time import sys import os def read_config(): dir = '/opt' filename = '.time_brightness_values' conf_file = os.path.join(dir,filename) brightness = None with open(conf_file) as f: try: data = json.load(f) data = OrderedDict(sorted(data.items())) except Exception as e: print(e) sys.exit(1) else: keys = [ key.split(',') for key,value in data.items()] keys.sort() hour = time.localtime().tm_hour for key in keys: if int(key[0]) <= hour and int(key[1]) >= hour: brightness = data[','.join(key)] return brightness def set_percentage(pcent): dir = os.listdir('/sys/class/backlight') dev = os.path.join('/sys/class/backlight',dir[0]) max = None with open(os.path.join(dev,'max_brightness')) as f: max = f.readline().strip() new = int(float(max)*pcent) new = str(new) with open(os.path.join(dev,'brightness'),'w') as f: f.write(new) def main(): percentage = read_config() if percentage: set_percentage(percentage) if __name__ == '__main__': main()
-
greeter-setup-script=/opt/set_timed_brightness.py
を設定します/etc/lightdm/lightdm.conf
にあります ファイル。グリーターセットアップスクリプトはrootとして実行され、システムがログイン画面に到達すると、スクリプトが実行され、必要な明るさを設定します。 -
サスペンドから復帰する限り、
/etc/pm/sleep.d/set_timed_brightness.sh
を作成します。 :#!/bin/bash case "${1}" in resume|thaw) python3 /opt/set_timed_brightness.py ;; esac
覚えておいてください :すべての標準ルールが適用されます。スクリプトはchmod +x
で実行可能にする必要があります 、各ファイルの命名と呼び出しは一貫している必要があります。