Hallo alle zusammen. Ich verwende Lubuntu 18.04 auf meinem Heim-Laptop. Eines schönen Tages entschied ich, dass ich mit den Aktionen, die Power Manager beim Schließen des Deckels eines Laptops anbietet, nicht zufrieden war. Als ich den Deckel des Laptops schloss, wollte ich den Bildschirm blockieren und den Laptop nach einer Weile in den Ruhezustand schicken. Zu diesem Zweck habe ich ein Skript geschrieben und beeile mich, es mit Ihnen zu teilen.Ich bin auf zwei Probleme gestoßen.Der erste ist, dass der Ruhezustand im Loubunt von der Box aus nicht funktioniert. Um ihn zu aktivieren, muss Folgendes ausgeführt werden.Suchen Sie den UUID-Swap. Dazu müssen Sie Folgendes tun:grep swap /etc/fstab
In meinem Fall lautet die Ausgabe wie folgt:
UUID=aebf757e-14c0-410a-b042-3d9a6044a987 none swap sw 0 0
Anschließend müssen Sie die UUID zu den Kernel-Initialisierungsparametern hinzufügen. Fügen Sie dazu die Datei / etc / default / grub in die Zeile "GRUB_CMDLINE_LINUX_DEFAULT" ein. Resume = UUID =% your UUID%...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=aebf757e-14c0-410a-b042-3d9a6044a987"
...
Und führen Sie den Befehl aus:sudo update-grub
Jetzt sollte der Ruhezustand funktionieren. Zur Überprüfung können Sie Folgendes tun:sudo systemctl hibernate
Das zweite Problem bestand darin, den Bildschirm des Benutzers vom Stammverzeichnis aus zu sperren, ohne den Laptop in den Ruhezustand zu versetzen. Ich habe es mit dbus-send gelöst, der Befehl selbst befindet sich im folgenden Skript. Wenn jemand andere Optionen kennt, schreiben Sie bitte in die Kommentare.Beginnen wir nun mit dem Schreiben des Skripts.Das erste, was wir in Power Manager tun müssen, ist die Option Anzeige ausschalten als Aktion beim Schließen des Deckels auszuwählen, damit keine Konflikte mit unserem Skript auftreten.
Erstellen Sie dann die Datei / etc / acpi / events / Laptop-Deckel mit folgendem Inhalt:event=button/lid.*
action=/etc/acpi/laptop-lid.sh
und erstellen Sie das Skript /etc/acpi/laptop-lid.sh mit den folgenden Inhalten:#!/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
Wir machen das Skript ausführbar:sudo chmod a+x /etc/acpi/laptop-lid.sh
Starten Sie den acpid-Daemon neu, damit die Änderungen übernommen werden:sudo systemctl restart acpid.service
Alles ist fertig.Für Gnome im Skript müssen Sie Folgendes ändern:- lxsessin => gnome-session
- org.freedesktop.ScreenSaver => org.gnome.ScreenSaver