Outil d'automatisation pour certains ordinateurs portables Lenovo ThinkPad (ex. X1c, X1e, P1) pour contrôler le rétroéclairage du clavier et la luminosité de l'écran LCD (rétroéclairage) sur les installations Windows à l'aide d'une application dans la barre d'état système. Ces ordinateurs portables ne sont pas non plus dotés d’un mécanisme de contrôle automatique. Les comportements supplémentaires ajoutés par ce programme imitent certaines automatisations trouvées sur d'autres appareils. Le contrôle du rétroéclairage du clavier est déclenché par un délai d'expiration de l'activité de l'utilisateur, et le contrôle du rétroéclairage de l'écran échantillonne le niveau de lumière ambiante à l'aide de la caméra intégrée.
Ce projet fournit une application de barre d'état système Windows en arrière-plan qui augmente les commandes de rétroéclairage du clavier et de l'écran LCD via un logiciel. Les paramètres prenant en charge ces deux fonctionnalités sont configurables via le menu contextuel de l'interface graphique (clic droit) dans la barre d'état système. Ils peuvent être désactivés ou activés individuellement.
Le rétroéclairage du clavier s'allume automatiquement chaque fois que l'utilisateur interagit avec le matériel clavier/souris intégré. Après un délai d'inactivité réglable, le rétroéclairage s'assombrit. Le niveau de luminosité du clavier change en même temps que le raccourci clavier "Fn+Espace" existant pour le niveau de rétroéclairage. Les paramètres sont conservés lors des événements d'alimentation (veille/réveil, affichage activé/désactivé) pour une expérience sans intervention, contrairement au comportement d'usine qui réinitialise le rétroéclairage lors des événements d'alimentation.
Le rétroéclairage de l'écran est automatiquement éclairé en échantillonnant la caméra intégrée pour imiter un capteur de lumière ambiante. Un instantané de base à basse résolution est pris et le niveau d'intensité moyen est calculé pour être utilisé comme indicateur du niveau de lumière ambiante. Le niveau est mappé à un pourcentage de luminosité de l'écran à l'aide d'une courbe d'étalonnage configurable. Le processus d'échantillonnage et de mise à jour sera déclenché par un événement d'alimentation (veille/réveil, affichage activé/désactivé) ou par un délai d'attente de l'activité de l'utilisateur sur le clavier/souris intégré. Cela maintient le rétroéclairage prêt lors de la première utilisation. En option, un intervalle d'échantillonnage périodique peut être spécifié. Cependant, cela peut être gênant en raison du voyant d'activité intégré à la caméra. Cette application n'échantillonnera la caméra qu'à des événements prévisibles (événements d'alimentation, délai d'attente de l'activité de l'utilisateur) afin de minimiser la distraction. Un raccourci clavier configurable (par défaut : Alt-Espace) peut également déclencher l'actualisation du rétroéclairage de l'écran, lorsque l'utilisateur se déplace vers des conditions d'éclairage différentes.
Accédez à la section des versions et téléchargez le dernier programme d'installation de Windows. Il ajoutera "Auto Backlight for ThinkPad" aux applications de démarrage pour démarrer automatiquement avec la connexion de l'utilisateur. Il peut être désinstallé facilement via « Ajouter ou supprimer des programmes » ou d'autres méthodes similaires.
Si vous souhaitez désactiver les fenêtres contextuelles d'affichage à l'écran de Lenovo, il y a une case à cocher "Activer l'affichage à l'écran" dans les paramètres de Windows 10. Accédez-y via Paramètres-->Système-->Affichage-->Paramètres d'affichage avancés-- > Propriétés de l'adaptateur d'affichage pour l'affichage 1 -> Configurations d'écran. Voir image.
Le projet est construit à partir du modèle de projet Visual Studio 2019 C# WPF et du modèle de projet d'installation Windows pour créer le programme d'installation. C# sur le framework Microsoft .NET a été choisi pour son code haute compatibilité sans dépendances externes, en utilisant uniquement le framework installé. La communication avec le clavier s'effectue via des appels Windows IO vers IbmPmDrv (pilote de gestion de l'alimentation Lenovo/IBM), qui devrait être disponible sur ces ordinateurs portables. L'interface de la caméra passe par des bibliothèques de traitement d'images Accord.NET tierces qui utilisent Microsoft DirectShow sous le capot.
L'application s'accroche à divers événements de gestion de l'alimentation Windows Win32 tels que Suspend, Resume, Display On/Off, Lid Close/Open pour déclencher une gestion spéciale de l'état du rétroéclairage autour de ces événements. Ces événements provoquent une mise à jour du rétroéclairage du clavier et/ou du rétroéclairage de l'écran. Windows Win32 Raw Input est utilisé pour notifier l'application en fonction de l'activité de l'utilisateur pour certains périphériques matériels (clavier et souris intégrés à l'ordinateur portable). Ces événements d'activité déclenchent l'allumage du rétroéclairage, qui est ensuite réinitialisé après un délai d'attente. Les événements d'entrée fréquents sont rapidement désactivés pour préserver la durée de vie de la batterie (utilisation du processeur) lorsqu'ils ne sont pas nécessaires. L'utilisation du processeur a été testée lors du développement de l'application pour la maintenir minimale en tant qu'application en arrière-plan.
La solution Visual Studio contient à la fois un projet C# (l'application elle-même) et un projet d'installation Windows (le programme d'installation). Tant que la dépendance principale est satisfaite sur Microsoft .NET Framework, tout devrait être construit directement sur Visual Studio 2019. Ce projet reste simple et contient principalement des paramètres standard/par défaut. Une astuce utilisée est la redirection des références de DLL externes. Ces fichiers dll (issus des packages NuGet inclus) apparaissent normalement à côté de l'application dans l'explorateur de fichiers, mais la plupart ont été intégrés dans l'exécutable dans le cadre du processus de construction.
Ce projet est sous licence Apache-2.0. Voir le fichier LICENSE pour le texte intégral. Voir le fichier AVIS pour les attributions.