Bonjour à tous,
Je tentes, sous Debian sarge, d'éteindre l'écran de mon ordinateur portable lorsque celui-ci complètement fermé.
Pour cela j'utilise l'ACPI qui me permet de savoir, par le biais du bouton "lid", si l'écran est rabattu ou non.
Bref, j'essaie de compléter le script système qui est appelé lorsque le bouton "lid" est enfoncé. (l'écran appuis dessus !)
Il s'agit du fichier: /etc/acpi/actions/lm_lid.sh
fichier initial:
----------------------------------------------------------------------------------------------------------
#!/bin/bash
test -f /usr/sbin/laptop_mode || exit 0
# lid button pressed/released event handler
/usr/sbin/laptop_mode auto
----------------------------------------------------------------------------------------------------------
mon fichier:
----------------------------------------------------------------------------------------------------------
#!/bin/bash
# lid button pressed/released event handler
# Recuperation de l'etat du bouton lid
state=`cat /proc/acpi/button/lid/LID/state | awk '{print $2}'`
# Ecriture de l'etat du bouton lid dans la syslog
logger -i "LID state $state"
# si l'etat du bouton lid est clos, forcer l'écran à s'éteidre sinon forcer l'écran à s'allumer
if [ "$state" = "closed" ]; then
sudo -u steph /usr/bin/X11/xset -display :0 dpms force off
else
sudo -u steph /usr/bin/X11/xset -display :0 dpms force on
fi
# Si le package laptop_mode n'est pas installé, quitte direct
test -f /usr/sbin/laptop_mode || exit 0
# Appel de laptop_mode
/usr/sbin/laptop_mode auto
----------------------------------------------------------------------------------------------------------
Bon ça fonctionne mais que pour le user steph =)
- Comment savoir quel est le user qui est connecté sous X ?
( pour remplacer "steph" qui est en dur)
- Pourquoi ce type de solution n'est elle pas intégrée par défaut ?
Je suis preneur des remarques, et autre améliorations...
# Re: lidio !
Posté par gros_rouge . Évalué à 4.
$ who | grep -m1 "^.\+ :0" | awk '{print $1}'
Mes 2 ¢.
[^] # Re: lidio !
Posté par debianowgus . Évalué à 1.
Je teste au plus tôt ...
[^] # awk, c'est du costaud
Posté par Frederic Brugmans . Évalué à 2.
who | awk ' $2 ~ /:0/ { print $1 }'
[^] # Re: awk, c'est du costaud
Posté par gros_rouge . Évalué à 3.
[^] # je plussoie aussi =)
Posté par debianowgus . Évalué à 1.
Voici la version modifiée du fichier /etc/acpi/actions/lm_lid.sh
-------------------------------------------------------------------------------------------------------------
#!/bin/bash
# lid button pressed/released event handler
# Recuperation de l'etat du bouton lid
state=`cat /proc/acpi/button/lid/LID/state | awk '{print $2}'`
# Ecriture de l'etat du bouton lid dans la syslog
logger -i "LID state $state"
# Récupération du username que est sous X en console
user=$(who | awk ' $2 ~ /:0/ { print $1 }')
# si l'etat du bouton lid est clos, forcer l'écran à s'éteidre sinon forcer l'écran à s'allumer
if [ "$state" = "closed" ]; then
sudo -u $user /usr/bin/X11/xset -display :0 dpms force off
else
sudo -u $user /usr/bin/X11/xset -display :0 dpms force on
fi
# Si le package laptop_mode n'est pas installé, quitte direct
test -f /usr/sbin/laptop_mode || exit 0
# Appel de laptop_mode
/usr/sbin/laptop_mode auto
-------------------------------------------------------------------------------------------------------------
A noter qu'il est nécessaire de lancer en root la commande ci-dessous pour effectuer la prise en compte de cette modification:
/etc/init.d/acpid restart
Merci à tous !
[^] # Re: je plussoie aussi =)
Posté par gros_rouge . Évalué à 2.
test -x /usr/sbin/laptop_mode || exit 0
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.