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:
-
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.
-
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()
-
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. -
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í.