J'exécute Ubuntu 16.04 sur un ordinateur portable Acer Aspire E5-773G. Malheureusement, je ne peux pas utiliser mes touches de fonction de luminosité sur l'écran de connexion, donc le premier moment où je peux changer la luminosité du rétroéclairage de mon écran est après avoir réussi à saisir mon mot de passe et à me connecter.
Par défaut, Ubuntu démarre avec le niveau de luminosité défini lors du dernier arrêt, mais ce n'est pas très utile, par exemple. parfois j'éteins tard le soir avec un niveau de luminosité autour de 5% et je le redémarre le lendemain où j'aurais besoin d'un niveau de luminosité d'au moins 50% pour tout voir confortablement. À l'inverse, si j'éteins pendant la journée avec peut-être 80 % de luminosité et que je redémarre le soir, je suis presque aveuglé par les lumières…
Comment puis-je configurer Ubuntu pour démarrer avec un niveau de luminosité en fonction de l'heure actuelle ? Je voudrais quelque chose comme 10 % de luminosité de 22h00 à 06h00, 60 % de luminosité de 10h00 à 16h00 et 30 % de luminosité entre les deux. Le lissage de la courbe est correct, tant qu'il reste facilement configurable. Alternativement, si vous trouvez un moyen de le régler en fonction des heures locales de coucher/lever du soleil, ce serait un gros bonus. 🙂
La modification de la luminosité selon ces règles ne doit avoir lieu qu'au démarrage ou éventuellement lors du réveil après une suspension. Il se peut que la luminosité ne change pas automatiquement pendant que je travaille.
Meilleure réponse
Idée de base :
-
Enregistrer le fichier de configuration
/opt/.time_brightness_values
:{ "5,7": 0.25, "8,16": 0.50, "17,22": 0.75 }
Faites attention aux valeurs entre guillemets et aux virgules. La première colonne avec des valeurs entre guillemets représente la plage d'heures au format 24 heures, la deuxième colonne est le pourcentage. Par exemple, si vous démarrez de 5 à 7 heures, votre luminosité sera réglée sur 25 %. Si vous démarriez de 8h à 16h, ce serait 50 %.
-
Enregistrez le script ci-dessous sous
/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()
-
Définir
greeter-setup-script=/opt/set_timed_brightness.py
dans le/etc/lightdm/lightdm.conf
dossier. Le script de configuration de greeter s'exécute en tant que root et une fois que votre système atteint l'écran de connexion, le script s'exécute et définit la luminosité dont vous avez besoin. -
En ce qui concerne le réveil de la suspension, créez
/etc/pm/sleep.d/set_timed_brightness.sh
:#!/bin/bash case "${1}" in resume|thaw) python3 /opt/set_timed_brightness.py ;; esac
Rappelez-vous :toutes les règles standards s'appliquent, les scripts doivent être rendus exécutables avec chmod +x
, le nommage et les appels à chaque fichier doivent être cohérents.