Ceci est un script en cours de développement pour un paquet permettant de contrôler la luminosité de l'écran et le gamma en fonction des heures de lever/coucher du soleil.
Lorsque vous fermez le capot de l'ordinateur portable, xrandr réinitialise tous les écrans externes à pleine luminosité. Le script ci-dessous détecte les changements de xrandr dans le fichier /sys/class/drm/?/status
en utilisant inotify
, une méthode de surveillance plus efficace que d'attendre chaque seconde.
Le script ci-dessous contient des crédits aux auteurs originaux et des parties sont commentées et pourraient être supprimées à l'avenir ou modifiées.
Utilisez ll /sys/class/drm/*/status
pour découvrir le(s) nom(s) de votre carte de moniteur. Ensuite, remplacez MONITOR=
ci-dessous par le nom approprié.
Script Bash
#!/bin/bash
# NOM: monitory-eyesome.sh
# CHEMIN: /usr/lib/bin
# DESC: Ajuster instantanément la luminosité de l'écran lorsque xrandr reconfigure les écrans
# et les réinitialise à pleine luminosité.
# APPEL: /etc/cron.d appelle ce script pendant le démarrage.
# Appelé depuis la ligne de commande pour les tests/debug.
# DATE: ?? Sepetmber, 2018.
# PARM: Pas encore de paramètres, mais $1 sera /sys/class/drm//status
# dans le futur. c'est-à-dire $1 =
# source eyesome-src.sh # Code commun pour les scripts bash eyesome___.sh
# Il est nécessaire d'avoir le paquet inotify-tools.
command -v inotifywait >/dev/null 2>&1 || { echo >&2 \
"Paquet inotify-tools requis mais non installé. Abandon."; \
exit 2; }
# Copié depuis: https://bbs.archlinux.org/viewtopic.php?id=171655
#inspiré de:
# http://unix.stackexchange.com/questions/4489/a-tool-for-automatically-applying-randr-configuration-when-external-display-is-p
# http://ozlabs.org/~jk/docs/mergefb/
# http://superuser.com/questions/181517/how-to-execute-a-command-whenever-a-file-changes/181543#181543
export MONITOR="/sys/class/drm/card1-DP-1/status"
echo "$0: $(date) Surveillance : $MONITOR" > /tmp/monitor-eyesome.sh
while inotifywait -e modify,create,delete,open,close,close_write,access \
"$MONITOR";
dmode="$(cat "$MONITOR")"
do
echo "$0: $(date) $dmode" >> /tmp/monitor-eyesome.sh
# if [ "${dmode}" = disconnected ]; then
# /usr/bin/xrandr --auto
# echo "${dmode}"
# elif [ "${dmode}" = connected ];then
# /usr/bin/xrandr --output VGA1 --auto --right-of LVDS1
# echo "${dmode}"
# else /usr/bin/xrandr --auto
# echo "${dmode}"
# fi
done
Exemple de sortie lors de la fermeture du capot de l'ordinateur portable
$ sudo ./monitor-eyesome.sh
Configuration des surveillances.
Surveillances établies.
/sys/class/drm/card1-DP-1/status OUVERT
Configuration des surveillances.
Surveillances établies.
/sys/class/drm/card1-DP-1/status OUVERT
Configuration des surveillances.
Surveillances établies.
/sys/class/drm/card1-DP-1/status OUVERT
Configuration des surveillances.
Surveillances établies.
Exemple de sortie du fichier journal
$ cat /tmp/mon*
./monitor-eyesome.sh: Dim Sep 16 11:16:51 MDT 2018 Surveillance : /sys/class/drm/card1-DP-1/status
./monitor-eyesome.sh: Dim Sep 16 11:16:55 MDT 2018 connecté
./monitor-eyesome.sh: Dim Sep 16 11:16:56 MDT 2018 connecté
./monitor-eyesome.sh: Dim Sep 16 11:16:56 MDT 2018 connecté
Résumé
Ce script a été créé il y a quelques minutes (le 16 sept. 2018 à 11h30 MST). Je le mettrai à jour au fur et à mesure de l'avancement du projet.