ืกืงืจื™ืคื˜ ืžื•ืชืื ืื™ืฉื™ืช ื‘ืขืช ืกื’ื™ืจืช ืžื›ืกื” ื”ืžื—ืฉื‘ ื”ื ื™ื™ื“ ื•ื ืขื™ืœืช ื”ืžืกืš ืœืœื ืฉื™ื ื”

ืฉืœื•ื ืœื›ื•ืœื. ืื ื™ ืžืฉืชืžืฉ ื‘-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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”