āĻšāĻžāĻ āĻ¸āĻŦ. āĻāĻŽāĻŋ āĻāĻŽāĻžāĻ° āĻŦāĻžāĻĄāĻŧāĻŋāĻ° āĻ˛ā§āĻ¯āĻžāĻĒāĻāĻĒā§ āĻ˛ā§āĻŦā§āĻ¨ā§āĻā§ 18.04 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻāĻŋāĨ¤ āĻāĻāĻĻāĻŋāĻ¨ āĻāĻŽāĻŋ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ˛āĻžāĻŽ āĻ¯ā§ āĻ˛ā§āĻ¯āĻžāĻĒāĻāĻĒā§āĻ° āĻĸāĻžāĻāĻ¨āĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻžāĻ° āĻ¯ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻāĻ°ā§āĻāĻŋāĻ˛ā§āĻ¨ āĻ¤āĻžāĻ¤ā§ āĻāĻŽāĻŋ āĻ¸āĻ¨ā§āĻ¤ā§āĻˇā§āĻ āĻ¨āĻā§ˇ āĻ˛ā§āĻ¯āĻžāĻĒāĻāĻĒā§āĻ° āĻĸāĻžāĻāĻ¨āĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŽāĻŋ āĻ¸ā§āĻā§āĻ°ā§āĻ¨ āĻ˛āĻ āĻāĻ°āĻ¤ā§ āĻā§āĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽ āĻāĻŦāĻ āĻāĻŋāĻā§āĻā§āĻˇāĻŖ āĻĒāĻ° āĻ˛ā§āĻ¯āĻžāĻĒāĻāĻĒāĻāĻŋāĻā§ āĻšāĻžāĻāĻŦāĻžāĻ°āĻ¨ā§āĻļāĻ¨ā§ āĻĒāĻžāĻ āĻžāĻ¤ā§ āĻāĻžāĻāĨ¤ āĻāĻŽāĻŋ āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ˛āĻŋāĻā§āĻāĻŋ āĻāĻŦāĻ āĻāĻŽāĻŋ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻĄāĻŧāĻžāĻšā§āĻĄāĻŧā§ āĻāĻ°āĻāĻŋāĨ¤
āĻāĻŽāĻŋ āĻĻā§āĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¯āĻŧ āĻĒāĻĄāĻŧā§āĻāĻŋāĻ˛āĻžāĻŽāĨ¤
āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻšāĻžāĻāĻŦāĻžāĻ°āĻ¨ā§āĻļāĻ¨ āĻ˛ā§āĻŦā§āĻ¨ā§āĻāĻžāĻ° āĻŦāĻžāĻā§āĻ¸ā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¨āĻž; āĻāĻāĻŋ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ā§ˇ
UUID āĻ¸ā§āĻ¯āĻŧāĻžāĻĒ āĻā§āĻāĻā§āĻ¨, āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻšāĻŦā§:
grep swap /etc/fstab
āĻāĻŽāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻāĻĒā§āĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤:
# swap was on /dev/mmcblk0p2 during installation
UUID=aebf757e-14c0-410a-b042-3d9a6044a987 none swap sw 0 0
āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻāĻ¨āĻŋāĻļāĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻā§āĻļāĻ¨ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§ UUID āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻĢāĻžāĻāĻ˛ā§āĻ° "GRUB_CMDLINE_LINUX_DEFAULT" āĻ˛āĻžāĻāĻ¨ā§ resume=UUID=%your UUID% āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ /etc/default/grub
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=aebf757e-14c0-410a-b042-3d9a6044a987"
...
āĻāĻŦāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨:
sudo update-grub
āĻāĻāĻ¨ āĻšāĻžāĻāĻŦāĻžāĻ°āĻ¨ā§āĻļāĻ¨ āĻāĻžāĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤, āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§:
sudo systemctl hibernate
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻāĻŋāĻ˛ āĻā§āĻāĻžāĻŦā§ āĻ˛ā§āĻ¯āĻžāĻĒāĻāĻĒāĻāĻŋāĻā§ āĻā§āĻŽāĻžāĻ¤ā§ āĻ¨āĻž āĻĒāĻžāĻ āĻŋāĻ¯āĻŧā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻāĻŋāĻā§ āĻ°ā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ˛āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻŽāĻŋ dbus-send āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°ā§āĻāĻŋ, āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻ¨āĻŋāĻā§āĻ āĻ¨ā§āĻā§āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¯āĻĻāĻŋ āĻā§āĻ āĻ āĻ¨ā§āĻ¯ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻžāĻ¨ā§āĻ¨, āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻ˛āĻŋāĻā§āĻ¨
āĻāĻŦāĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ˛ā§āĻāĻž āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤
āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻžāĻ°ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¯āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻšāĻ˛ āĻĸāĻžāĻāĻ¨āĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§āĻāĻ āĻ āĻĢ āĻĄāĻŋāĻ¸āĻĒā§āĻ˛ā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻž, āĻ¯āĻžāĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻā§āĻ¨āĻ āĻŦāĻŋāĻ°ā§āĻ§ āĻ¨āĻž āĻĨāĻžāĻā§āĨ¤
āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻš āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ /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
āĻāĻŦāĻ āĻāĻ¸āĻŋāĻĒāĻŋāĻĄ āĻĄā§āĻŽāĻ¨ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨ āĻ¯āĻžāĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
sudo systemctl restart acpid.service
āĻ¸āĻŦāĻāĻŋāĻā§ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĨ¤
āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§ āĻāĻŋāĻ¨ā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
- lxsessin => āĻāĻŋāĻ¨ā§āĻŽ-āĻ¸ā§āĻļāĻ¨
- org.freedesktop.ScreenSaver => org.gnome.ScreenSaver
āĻāĻ¤ā§āĻ¸: www.habr.com