Idéia básica:
-
Salvar o arquivo de configuração
/opt/.time_brightness_values
:{ "5,7": 0.25, "8,16": 0.50, "17,22": 0.75 }
Preste atenção aos valores e vírgulas entre aspas. A primeira coluna com valores citados representa o intervalo de horas no formato de 24 horas, a segunda coluna é porcentagem. Por exemplo, se você inicializasse de 5 a 7 horas, seu brilho seria definido como 25%. Se você inicializasse de 8 a 16 horas, seria 50%.
-
Salve o script abaixo como
/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()
-
Defina
greeter-setup-script=/opt/set_timed_brightness.py
no arquivo/etc/lightdm/lightdm.conf
. O script de configuração do greeter é executado como root e, assim que o sistema estiver na tela de login, o script será executado e definirá o brilho de que você precisa. -
No que diz respeito a acordar da suspensão, crie
/etc/pm/sleep.d/set_timed_brightness.sh
:#!/bin/bash case "" in resume|thaw) python3 /opt/set_timed_brightness.py ;; esac
Lembre-se : todas as regras padrão se aplicam, os scripts devem ser executados com chmod +x
, os nomes e as chamadas para cada arquivo devem ser consistentes.