ืฉืืื ืืืืื. ืื ื ืืฉืชืืฉ ื-Lubuntu 18.04 ืืืืฉื ืื ืืื ืืืืชื ืฉืื. ืืื ืืืืจ ืืื ืืืืืชื ืฉืื ื ืื ืืจืืฆื ืืืคืขืืืืช ืฉืืฆืืข Power Manager ืืขืช ืกืืืจืช ืืืกื ืืืืฉื ืื ืืื. ืจืฆืืชื ืื ืขืื ืืช ืืืกื ืืขืช ืกืืืจืช ืืืกื ืืืืฉื ืื ืืื ืืืืืจ ืืื ืื ืืฉืืื ืืช ืืืืฉื ืื ืืื ืืืฆื ืฉืื ื. ืืชืืชื ืชืกืจืื ืืฉืืื ืื ืืื ื ืืืืจ ืืืืืง ืืืชื ืืืชื.
ื ืชืงืืชื ืืฉืชื ืืขืืืช.
ืจืืฉืืช, ืืฆื ืชืจืืื ืื ืขืืื ืืืงืืคืกื ื-Lubunta; ืืื ืืืคืฉืจ ืืืช, ืขืืื ืืืฆืข ืืช ืืคืขืืืืช ืืืืืช.
ืืฆื ืืช ืืืืคืช ื-UUID, ืืฉื ืื ืขืืื ืืืคืขืื:
grep swap /etc/fstab
ืืืงืจื ืฉืื ืืคืื ืืื ืืื:
# swap was on /dev/mmcblk0p2 during installation
UUID=aebf757e-14c0-410a-b042-3d9a6044a987 none swap sw 0 0
ืืืืจ ืืื ืขืืื ืืืืกืืฃ ืืช ื-UUID ืืคืจืืืจื ืืชืืื ืืืืื. ืืื ืืขืฉืืช ืืืช, ืืืกืฃ ืืช resume=UUID=%your UUID% ืืฉืืจื "GRUB_CMDLINE_LINUX_DEFAULT" ืืงืืืฅ /etc/default/grub
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=aebf757e-14c0-410a-b042-3d9a6044a987"
...
ืืืคืขื ืืช ืืคืงืืื:
sudo update-grub
ืืขืช ืืฆื ืชืจืืื ืืืืจ ืืขืืื, ืืื ืืืืืง ืฉืืชื ืืืื ืืืจืืฅ:
sudo systemctl hibernate
ืืืขืื ืืฉื ืืื ืืืืชื ืืืฆื ืื ืขืื ืืช ืืกื ืืืฉืชืืฉ ืืฉืืจืฉ ืืืื ืืฉืืื ืืช ืืืืฉื ืื ืืื ืืืฆื ืฉืื ื. ืคืชืจืชื ืืช ืื ืืืืฆืขืืช dbus-send, ืืคืงืืื ืขืฆืื ื ืืฆืืช ืืกืงืจืืคื ืืืื. ืื ืืืฉืื ืืืืจ ืืคืฉืจืืืืช ืืืจืืช, ื ื ืืืชืื ืืชืืืืืช
ืขืืฉืื ืืืื ื ืชืืื ืืืชืื ืืช ืืชืกืจืื.
ืืืืจ ืืจืืฉืื ืฉืขืืื ื ืืขืฉืืช ื-Power Manager ืืื ืืืืืจ ืืืคืฉืจืืช Switch off display ืืคืขืืื ืืขืช ืกืืืจืช ืืืืกื, ืื ืฉืื ืืืื ืืชื ืืฉืืืืช ืขื ืืกืงืจืืคื ืฉืื ื.
ืืืืจ ืืื ืฆืืจ ืงืืืฅ /etc/acpi/events/laptop-lid ืขื ืืชืืื ืืื:
event=button/lid.*
action=/etc/acpi/laptop-lid.sh
ืืฆืืจ ืกืงืจืืคื /etc/acpi/laptop-lid.sh ืขื ืืชืืื ืืื:
#!/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
ืืคืืืช ืืกืงืจืืคื ืื ืืชื ืืืคืขืื:
sudo chmod a+x /etc/acpi/laptop-lid.sh
ืืืคืขื ืืืืฉ ืืช ื-acpid daemon ืื ืฉืืฉืื ืืืื ืืืืื:
sudo systemctl restart acpid.service
ืืื ืืืื.
ืขืืืจ Gnome ืืกืงืจืืคื ืืชื ืฆืจืื ืืฉื ืืช:
- lxsessin => gnome-session
- org.freedesktop.ScreenSaver => org.gnome.ScreenSaver
ืืงืืจ: www.habr.com