рд▓реНрдпрд╛рдкрдЯрдкрдХреЛ рдврдХреНрдХрди рдмрдиреНрдж рдЧрд░реНрджрд╛ рд░ рдирд┐рджреНрд░рд╛ рдмрд┐рдирд╛ рд╕реНрдХреНрд░рд┐рди рд▓рдХ рдЧрд░реНрджрд╛ рдЕрдиреБрдХреВрд▓рди рд▓рд┐рдкрд┐

рдирдорд╕реНрддреЗ рд╕рдмреИред рдо рдореЗрд░реЛ рдШрд░рдХреЛ рд▓реНрдпрд╛рдкрдЯрдкрдорд╛ Lubuntu 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 рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдлрд╛рдЗрд▓ /etc/default/grub рдорд╛ "GRUB_CMDLINE_LINUX_DEFAULT" рд▓рд╛рдЗрдирдорд╛ resume=UUID=%your UUID% рдердкреНрдиреБрд╣реЛрд╕реНред

...
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

рд░ acpid рдбреЗрдорди рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН рддрд╛рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫрдиреН:

sudo systemctl restart acpid.service

рд╕рдмреИ рддрдпрд╛рд░ рдЫред

рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ Gnome рдХреЛ рд▓рд╛рдЧреА рддрдкрд╛рдИрд▓реЗ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:

  • lxsessin => gnome-рд╕рддреНрд░
  • org.freedesktop.ScreenSaver => org.gnome.ScreenSaver

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди