Bonjour à tous. J'utilise Lubuntu 18.04 sur mon ordinateur portable domestique. Un beau jour, j'ai décidé que je n'étais pas satisfait des actions que Power Manager propose lors de la fermeture du couvercle d'un ordinateur portable. Lorsque j'ai fermé le capot de l'ordinateur portable, j'ai voulu verrouiller l'écran et, après un certain temps, envoyer l'ordinateur portable en hibernation. Pour ce faire, j'ai écrit un script et je m'empresse de le partager avec vous.J'ai rencontré deux problèmes.La première est que l'hibernation ne fonctionne pas dans le loubunt hors de la boîte;Trouvez le swap UUID, pour cela, vous devez faire:grep swap /etc/fstab
Dans mon cas, la sortie est la suivante:
UUID=aebf757e-14c0-410a-b042-3d9a6044a987 none swap sw 0 0
Ensuite, vous devez ajouter l'UUID aux paramètres d'initialisation du noyau. Pour ce faire, ajoutez le fichier / etc / default / grub à la ligne "GRUB_CMDLINE_LINUX_DEFAULT" resume = UUID =% votre UUID%...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=aebf757e-14c0-410a-b042-3d9a6044a987"
...
Et exécutez la commande:sudo update-grub
Maintenant, l'hibernation devrait fonctionner, pour la vérification, vous pouvez faire:sudo systemctl hibernate
Le deuxième problème était de savoir comment verrouiller l'écran de l'utilisateur à partir de root sans envoyer l'ordinateur portable en veille. Je l'ai résolu en utilisant dbus-send, la commande elle-même est dans le script ci-dessous. Si quelqu'un connaît d'autres options, veuillez écrire dans les commentaires.Commençons maintenant à écrire le script.La première chose que nous devons faire dans Power Manager est de sélectionner Désactiver l'affichage comme action lors de la fermeture du couvercle afin qu'il n'y ait aucun conflit avec notre script.
Créez ensuite le fichier / etc / acpi / events / laptop-lid avec le contenu suivant:event=button/lid.*
action=/etc/acpi/laptop-lid.sh
et créez le script /etc/acpi/laptop-lid.sh avec le contenu suivant:#!/bin/bash
BUS=$(grep -z DBUS_SESSION_BUS_ADDRESS \
/proc/$(pidof -s lxsession)/environ | \
sed 's/DBUS_SESSION_BUS_ADDRESS=//g')
USER=$(grep -z USER /proc/$(pidof -s lxsession)/environ | sed 's/USER=//g')
LID="/proc/acpi/button/lid/LID0/state"
check_lid () {
grep -q closed $LID
}
check_lid
if [ $? = 0 ]
then
sudo -u $USER -E dbus-send --bus=$BUS \
--type=method_call \
--dest="org.freedesktop.ScreenSaver" \
"/org/freedesktop/ScreenSaver" \
org.freedesktop.ScreenSaver.Lock
fi
sleep 600
check_lid
if [ $? = 0 ]
then
systemctl hibernate
fi
Nous rendons le script exécutable:sudo chmod a+x /etc/acpi/laptop-lid.sh
Et redémarrez le démon acpid pour que les modifications s'appliquent:sudo systemctl restart acpid.service
Tout est prêt.Pour Gnome dans le script, vous devez changer:- lxsessin => gnome-session
- org.freedesktop.ScreenSaver => org.gnome.ScreenSaver