GNU/Linux >> Linux の 問題 >  >> Ubuntu

昼間に初期起動背景の明るさを設定しますか?

私はAcerAspireE5-773GノートブックでUbuntu16.04を実行しています。残念ながら、ログイン画面で明るさのファンクションキーを使用できないため、画面のバックライトの明るさを変更できるのは、パスワードを入力してログインした後です。

デフォルトでは、Ubuntuは最後のシャットダウン時に設定された輝度レベルで起動しますが、これはたとえば次のようにあまり役に立ちません。時々私は夜遅くに5%前後の明るさでシャットダウンし、翌日再び起動します。すべてを快適に見るには、少なくとも50%の明るさが必要です。逆に、日中に80%の明るさでシャットダウンし、夕方に起動すると、ライトに目がくらむところです…

現在の日中に明るさのレベルで起動するようにUbuntuを構成するにはどうすればよいですか? 22:00から06:00までは10%の明るさ、10:00から16:00までは60%の明るさ、その間に30%の明るさのようなものが欲しいです。簡単に設定できる限り、曲線を滑らかにすることは問題ありません。または、現地の日没/日の出時間に基づいて設定する方法を見つけた場合、それは大きなボーナスになります。 🙂

これらのルールに従って明るさを変更するのは、起動中、またはオプションでサスペンドから復帰したときにのみ行う必要があります。作業中に明るさが自動的に変わることはありません。

ベストアンサー

基本的な考え方:

  1. 構成ファイルを保存します/opt/.time_brightness_values

    {
      "5,7": 0.25,
      "8,16": 0.50,
      "17,22": 0.75
    }
    

    引用符で囲まれた値とコンマに注意してください。引用符で囲まれた値の最初の列は24時間形式の時間範囲を表し、2番目の列はパーセンテージです。たとえば、5時から7時に起動した場合、明るさは25パーセントに設定されます。 8時から16時まで起動した場合、50%になります。

  2. 以下のスクリプトを/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()
    
  3. greeter-setup-script=/opt/set_timed_brightness.pyを設定します /etc/lightdm/lightdm.confにあります ファイル。グリーターセットアップスクリプトはrootとして実行され、システムがログイン画面に到達すると、スクリプトが実行され、必要な明るさを設定します。

  4. サスペンドから復帰する限り、/etc/pm/sleep.d/set_timed_brightness.shを作成します。 :

    #!/bin/bash
    
    case "${1}" in
            resume|thaw) python3 /opt/set_timed_brightness.py
        ;;
    esac
    

覚えておいてください :すべての標準ルールが適用されます。スクリプトはchmod +xで実行可能にする必要があります 、各ファイルの命名と呼び出しは一貫している必要があります。

関連:UbuntuのXfceでデュアルモニターをセットアップする方法は?
Ubuntu
  1. Nfsネットワークを設定する方法は?

  2. Vim:黒い背景に黒いテキスト?

  3. 起動時のプロセスにOomKiller調整を設定しますか?

  1. Fedora – MysqlServer-idがFedora16で設定されていませんか?

  2. Tomcat 7:初期ヒープサイズを正しく設定するには?

  3. 起動時にバックグラウンドでユニゾンを実行しますか?

  1. Ubuntu – Ubuntuで静的IPを設定する方法は?

  2. Ubuntu 11.10に起動音がありませんか?

  3. Setxkbmapプリファレンスを起動時に設定しますか?