āĻ˛ā§āĻ¯āĻžāĻĒāĻŸāĻĒā§‡āĻ° āĻĸāĻžāĻ•āĻ¨āĻž āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸ā§āĻ˛āĻŋāĻĒ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¨ āĻ˛āĻ• āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ•āĻžāĻ¸ā§āĻŸāĻŽ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ

āĻšāĻžāĻ‡ āĻ¸āĻŦ. āĻ†āĻŽāĻŋ āĻ†āĻŽāĻžāĻ° āĻŦāĻžāĻĄāĻŧāĻŋāĻ° āĻ˛ā§āĻ¯āĻžāĻĒāĻŸāĻĒā§‡ āĻ˛ā§āĻŦā§āĻ¨ā§āĻŸā§ 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

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨