Ejecuto Ubuntu 16.04 en una computadora portátil Acer Aspire E5-773G. Desafortunadamente, no puedo usar mis teclas de función de brillo en la pantalla de inicio de sesión, por lo que el primer momento en que puedo cambiar el brillo de la luz de fondo de mi pantalla es después de ingresar mi contraseña e iniciar sesión.
De forma predeterminada, Ubuntu arranca con el nivel de brillo que se configuró en el último apagado, pero esto no es muy útil, p. a veces apago tarde en la noche con un nivel de brillo de alrededor del 5% y lo vuelvo a encender al día siguiente, donde necesitaría un nivel de brillo de al menos el 50% para ver todo cómodamente. Al revés, si lo apago durante el día con quizás un 80 % de brillo y lo enciendo por la noche, las luces casi me ciegan...
¿Cómo puedo configurar Ubuntu para que arranque con un nivel de brillo según el día actual? Me gustaría algo como 10% de brillo de 22:00 a 06:00, 60% de brillo de 10:00 a 16:00 y 30% de brillo en el medio. Suavizar la curva está bien, siempre y cuando sea fácilmente configurable. Alternativamente, si encuentra una manera de configurarlo en función de las horas locales de puesta y salida del sol, sería una gran ventaja. 🙂
La modificación del brillo de acuerdo con estas reglas solo debe realizarse durante el arranque u, opcionalmente, al despertar de la suspensión. Es posible que no cambie automáticamente el brillo mientras estoy trabajando.
Mejor respuesta
Idea básica:
-
Guarde el archivo de configuración
/opt/.time_brightness_values
:{ "5,7": 0.25, "8,16": 0.50, "17,22": 0.75 }
Preste atención a los valores entrecomillados y las comas. La primera columna con valores citados representa el intervalo de horas en formato de 24 horas, la segunda columna es un porcentaje. Por ejemplo, si arrancó de 5 a 7 en punto, su brillo se establecería en un 25 por ciento. Si arrancara de 8 a 16 en punto, sería el 50 por ciento.
-
Guarde el script a continuación 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()
-
Establecer
greeter-setup-script=/opt/set_timed_brightness.py
en el/etc/lightdm/lightdm.conf
expediente. La secuencia de comandos de configuración de saludo se ejecuta como root y una vez que su sistema llega a la pantalla de inicio de sesión, la secuencia de comandos se ejecutará y establecerá el brillo que necesita. -
En cuanto a despertar de la suspensión, cree
/etc/pm/sleep.d/set_timed_brightness.sh
:#!/bin/bash case "${1}" in resume|thaw) python3 /opt/set_timed_brightness.py ;; esac
Recuerda :se aplican todas las reglas estándar, los scripts deben hacerse ejecutables con chmod +x
, los nombres y las llamadas a cada archivo deben ser coherentes.