Halo semuanya. Saya menggunakan Lubuntu 18.04 di laptop rumah saya. Suatu hari, saya memutuskan bahwa saya tidak senang dengan tindakan yang ditawarkan Power Manager ketika menutup penutup laptop. Ketika saya menutup tutup laptop, saya ingin memblokir layar dan setelah beberapa saat mengirim laptop ke hibernasi. Untuk melakukan ini, saya menulis sebuah skrip dan saya segera membagikannya kepada Anda.Saya mengalami dua masalah.Yang pertama adalah bahwa hibernasi tidak berfungsi dalam kotak dari kotak, untuk mengaktifkannya, hal berikut harus dilakukan.Temukan swap UUID, untuk ini yang perlu Anda lakukan:grep swap /etc/fstab
Dalam kasus saya, hasilnya adalah sebagai berikut:
UUID=aebf757e-14c0-410a-b042-3d9a6044a987 none swap sw 0 0
Kemudian Anda perlu menambahkan UUID ke parameter inisialisasi kernel. Untuk melakukan ini, tambahkan file / etc / default / grub ke baris "GRUB_CMDLINE_LINUX_DEFAULT" resume = UUID =% UUID Anda%...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=aebf757e-14c0-410a-b042-3d9a6044a987"
...
Dan jalankan perintah:sudo update-grub
Sekarang hibernasi akan berfungsi, untuk verifikasi Anda dapat melakukan:sudo systemctl hibernate
Masalah kedua adalah bagaimana mengunci layar pengguna dari root tanpa mengirim laptop ke mode tidur. Saya menyelesaikannya menggunakan dbus-send, perintahnya sendiri ada di skrip di bawah ini. Jika ada yang tahu opsi lain, silakan tulis di komentar.Sekarang mari kita mulai menulis skrip.Hal pertama yang perlu kita lakukan di Power Manager adalah pilih Nonaktifkan tampilan sebagai tindakan saat menutup penutup sehingga tidak ada konflik dengan skrip kami.
Kemudian buat file / etc / acpi / events / laptop-tutup dengan konten berikut:event=button/lid.*
action=/etc/acpi/laptop-lid.sh
dan buat skrip /etc/acpi/laptop-lid.sh dengan konten berikut:#!/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
Kami membuat skrip dapat dieksekusi:sudo chmod a+x /etc/acpi/laptop-lid.sh
Dan restart daemon acpid agar perubahannya berlaku:sudo systemctl restart acpid.service
Semuanya sudah siap.Untuk Gnome dalam skrip, Anda perlu mengubah:- lxsessin => gnome-session
- org.freedesktop.ScreenSaver => org.gnome.ScreenSaver