Moni nonse. Ndikugwiritsa ntchito Lubuntu 18.04 pa laputopu yanga yakunyumba. Tsiku lina labwino ndinaganiza kuti sindinakhutire ndi zomwe Power Manager adapereka potseka chivindikiro cha laputopu. Ndinkafuna kutseka chinsalu potseka chivindikiro cha laputopu ndipo patapita kanthawi ndikutumiza laputopuyo kuti ikhale hibernation. Ndinalemba script pa izi ndipo ndikufulumira kugawana nanu.
Ndinakumana ndi mavuto awiri.
Choyamba, hibernation sikugwira ntchito m'bokosi la Lubunta; kuti muthe, muyenera kuchita izi.
Pezani kusintha kwa UUID, kuti muchite izi muyenera kuthamanga:
grep swap /etc/fstab
Kwa ine zotsatira zake ndi izi:
# swap was on /dev/mmcblk0p2 during installation
UUID=aebf757e-14c0-410a-b042-3d9a6044a987 none swap sw 0 0
Kenako muyenera kuwonjezera UUID ku magawo oyambira kernel. Kuti muchite izi, onjezani resume=UUID=%UUID% yanu pamzere "GRUB_CMDLINE_LINUX_DEFAULT" mufayilo /etc/default/grub
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=aebf757e-14c0-410a-b042-3d9a6044a987"
...
Ndipo yendetsani lamulo:
sudo update-grub
Tsopano hibernation iyenera kugwira ntchito, kuti muwone kuti mutha kuthamanga:
sudo systemctl hibernate
Vuto lachiwiri linali momwe mungatsekere chinsalu cha wosuta ngati muzu popanda kutumiza laputopu kuti igone. Ndinazithetsa pogwiritsa ntchito dbus-send, lamulo lokha liri mu script pansipa. Ngati wina akudziwa njira zina, chonde lembani mu ndemanga
Tsopano tiyeni tiyambe kulemba script.
Chinthu choyamba chomwe tiyenera kuchita mu Power Manager ndikusankha Chotsani chiwonetsero ngati chochita potseka chivindikiro, kuti pasakhale mikangano ndi zolemba zathu.
Kenako pangani fayilo /etc/acpi/events/laptop-lid ndi izi:
event=button/lid.*
action=/etc/acpi/laptop-lid.sh
ndikupanga script /etc/acpi/laptop-lid.sh ndi izi:
#!/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
Kupanga script kukwaniritsidwa:
sudo chmod a+x /etc/acpi/laptop-lid.sh
Ndipo yambitsaninso daemon ya acpid kuti zosintha zigwiritsidwe:
sudo systemctl restart acpid.service
Chilichonse chakonzeka.
Kwa Gnome mu script muyenera kusintha:
- lxsessin => gnome-session
- org.freedesktop.ScreenSaver => org.gnome.ScreenSaver
Source: www.habr.com