GNU/Linux >> Znalost Linux >  >> Ubuntu

Nastavit počáteční jas pozadí při spuštění v závislosti na denní době?

Používám Ubuntu 16.04 na notebooku Acer Aspire E5-773G. Bohužel nemohu používat své funkční klávesy jasu na přihlašovací obrazovce, takže prvním okamžikem, kdy mohu změnit jas podsvícení obrazovky, je úspěšné zadání hesla a přihlášení.

Ve výchozím nastavení se Ubuntu spouští s úrovní jasu, která byla nastavena při posledním vypnutí, ale to není příliš užitečné, protože např. někdy se vypnu pozdě v noci s úrovní jasu kolem 5% a znovu jej zapnu další den, kde bych potřeboval úroveň jasu alespoň 50%, abych vše pohodlně viděl. Na druhou stranu, když se během dne vypnu s jasem třeba 80 % a zapnu to večer, málem mě oslepí světla…

Jak mohu nakonfigurovat Ubuntu, aby se spouštělo s úrovní jasu v závislosti na aktuálním dni? Chtěl bych něco jako 10% jas od 22:00 do 6:00, 60% jas od 10:00 do 16:00 a 30% jas mezi tím. Vyhlazení křivky je v pořádku, pokud zůstane snadno konfigurovatelné. Případně, pokud najdete způsob, jak to nastavit na základě místních časů západu/východu slunce, byl by to velký bonus. 🙂

Úprava jasu podle těchto pravidel by měla probíhat pouze během bootování nebo volitelně při probuzení z režimu spánku. Při práci se nemusí automaticky měnit jas.

Nejlepší odpověď

Základní myšlenka:

  1. Uložte konfigurační soubor /opt/.time_brightness_values :

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

    Věnujte pozornost uváděným hodnotám a čárkám. První sloupec s uvozovkami představuje hodinový rozsah ve 24hodinovém formátu, druhý sloupec je procentuální. Pokud jste například zavedli systém od 5 do 7 hodin, jas bude nastaven na 25 procent. Pokud byste zavedli od 8 do 16 hodin, bylo by to 50 procent.

  2. Uložte skript níže jako /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. Nastavit greeter-setup-script=/opt/set_timed_brightness.py v /etc/lightdm/lightdm.conf soubor. Skript nastavení greeter se spustí jako root a jakmile se váš systém dostane na přihlašovací obrazovku, skript se spustí a nastaví požadovaný jas.

  4. Pokud jde o probuzení z režimu spánku, vytvořte /etc/pm/sleep.d/set_timed_brightness.sh :

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

Pamatujte :platí všechna standardní pravidla, skripty musí být spustitelné pomocí chmod +x , pojmenování a volání každého souboru musí být konzistentní.

Související:Jak nastavit duální monitory v Xfce v Ubuntu?
Ubuntu
  1. Fedora – ID serveru Mysql není nastaveno pomocí Fedory 16?

  2. Ubuntu – Jak nastavit statickou IP v Ubuntu?

  3. Jak nastavit síť NFS?

  1. Žádný zvuk při spuštění v Ubuntu 11.10?

  2. Nastavují se předvolby Setxkbmap při spuštění?

  3. Nastavit úpravu Oom Killer pro proces při spuštění?

  1. Tomcat 7:Jak správně nastavit počáteční velikost haldy?

  2. Nastavit obrázek na pozadí v xmonad

  3. Nastavení barvy pozadí v gvim