Sanibonani nonke. Ngisebenzisa i-Lubuntu 18.04 kukhompyutha yami ephathekayo yasekhaya. Ngolunye usuku oluhle nganquma ukuthi angigculisekile ngezenzo ezenziwa nguMphathi Wamandla lapho ngivala isivalo sekhompuyutha ephathekayo. Bengifuna ukukhiya isikrini lapho ngivala isivalo se-laptop futhi ngemva kwesikhashana ngithumele ikhompuyutha ephathekayo ku-hibernation. Ngibhale umbhalo walokhu futhi ngiyashesha ukukwabelana nawe.
Ngabhekana nezinkinga ezimbili.
Okokuqala, ukulala ubuthongo akusebenzi ngaphandle kwebhokisi eliku-Lubunta; ukuze uyinike amandla, udinga ukwenza okulandelayo.
Thola ukushintshwa kwe-UUID, ukwenza lokhu udinga ukusebenzisa:
grep swap /etc/fstab
Endabeni yami okukhiphayo yilokhu okulandelayo:
# swap was on /dev/mmcblk0p2 during installation
UUID=aebf757e-14c0-410a-b042-3d9a6044a987 none swap sw 0 0
Bese udinga ukwengeza i-UUID kumingcele yokuqalisa i-kernel. Ukuze wenze lokhu, engeza i-resume=UUID=%UUID% yakho emugqeni othi βGRUB_CMDLINE_LINUX_DEFAULTβ kufayela /etc/default/grub
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=aebf757e-14c0-410a-b042-3d9a6044a987"
...
Bese ugijima umyalo:
sudo update-grub
Manje i-hibernation kufanele isebenze, ukuhlola ukuthi ungagijima:
sudo systemctl hibernate
Inkinga yesibili kwaba ukuthi usikhiya kanjani isikrini somsebenzisi njengempande ngaphandle kokuthumela ikhompuyutha ephathekayo ukuthi ilale. Ngiyixazulule ngisebenzisa i-dbus-send, umyalo ngokwawo ukuskripthi esingezansi. Uma kukhona owazi ezinye izinketho, sicela ubhale kumazwana
Manje ake siqale ukubhala iskripthi.
Into yokuqala okudingeka siyenze kokuthi Isiphathi Samandla ukukhetha Ukuvala isibonisi njengesenzo lapho uvala isivalo, ukuze kungabikho ukungqubuzana nesikripthi sethu.
Bese udala ifayela /etc/acpi/events/laptop-lid ngokuqukethwe okulandelayo:
event=button/lid.*
action=/etc/acpi/laptop-lid.sh
bese udala umbhalo /etc/acpi/laptop-lid.sh ngokuqukethwe okulandelayo:
#!/bin/bash
#set variables
#ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ BUS Π°Π΄ΡΠ΅Ρ ΠΈΠ· environ ΡΠ°ΠΉΠ»Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° lxsession
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 state (return 0 if closed)
check_lid () {
grep -q closed $LID
}
#Lock screen without sleep
check_lid
if [ $? = 0 ]
then
#TODO run command as root
sudo -u $USER -E dbus-send --bus=$BUS
--type=method_call
--dest="org.freedesktop.ScreenSaver"
"/org/freedesktop/ScreenSaver"
org.freedesktop.ScreenSaver.Lock
fi
#Wait 10 minutes and hibernate if lid is closed
sleep 600
check_lid
if [ $? = 0 ]
then
systemctl hibernate
fi
Ukwenza iskripthi sisebenze:
sudo chmod a+x /etc/acpi/laptop-lid.sh
Bese uqala kabusha i-acpid daemon ukuze izinguquko zisetshenziswe:
sudo systemctl restart acpid.service
Konke sekulungile.
Ku-Gnome kuskripthi udinga ukushintsha:
- lxsessin => i-gnome-session
- org.freedesktop.ScreenSaver => org.gnome.ScreenSaver
Source: www.habr.com