рдирдорд╕реНрддреЗред рдореИрдВ рдЕрдкрдиреЗ рд╣реЛрдо рд▓реИрдкрдЯреЙрдк рдкрд░ рд▓реБрдмрдВрдЯреВ 18.04 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдПрдХ рджрд┐рди рдореИрдВрдиреЗ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рд▓реИрдкрдЯреЙрдк рдХрд╛ рдврдХреНрдХрди рдмрдВрдж рдХрд░рддреЗ рд╕рдордп рдкрд╛рд╡рд░ рдореИрдиреЗрдЬрд░ рджреНрд╡рд╛рд░рд╛ рдХреА рдЧрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реЗ рдореИрдВ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рд╣реВрдБред рдореИрдВ рд▓реИрдкрдЯреЙрдк рдХрд╛ рдврдХреНрдХрди рдмрдВрдж рдХрд░рддреЗ рд╕рдордп рд╕реНрдХреНрд░реАрди рдХреЛ рд▓реЙрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рд▓реИрдкрдЯреЙрдк рдХреЛ рд╣рд╛рдЗрдмрд░рдиреЗрд╢рди рдореЗрдВ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рд╣реИ рдФрд░ рдореБрдЭреЗ рдЗрд╕реЗ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рдЬрд▓реНрджреА рд╣реИред
рдореБрдЭреЗ рджреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд▓реНрдпреВрдмреБрдВрдЯрд╛ рдореЗрдВ рд╣рд╛рдЗрдмрд░рдиреЗрд╢рди рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ; рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпреВрдпреВрдЖрдИрдбреА рд╕реНрд╡реИрдк рдвреВрдВрдвреЗрдВ, рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
grep swap /etc/fstab
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:
# swap was on /dev/mmcblk0p2 during installation
UUID=aebf757e-14c0-410a-b042-3d9a6044a987 none swap sw 0 0
рдлрд┐рд░ рдЖрдкрдХреЛ рдХрд░реНрдиреЗрд▓ рдЖрд░рдВрднреАрдХрд░рдг рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдпреВрдпреВрдЖрдИрдбреА рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ /etc/default/grub рдореЗрдВ "GRUB_CMDLINE_LINUX_DEFAULT" рд▓рд╛рдЗрди рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ = UUID =% рдЕрдкрдирд╛ 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
рдФрд░ рдПрд╕реАрдкреАрдЖрдИрдбреА тАЛтАЛрдбреЗрдореЙрди рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВ рддрд╛рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рд╣реЛ рд╕рдХреЗрдВ:
sudo systemctl restart acpid.service
рд╕рдм рддреИрдпрд╛рд░ рд╣реИ.
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЧрдиреЛрдо рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:
- lxsessin => рд╕реВрдХреНрддрд┐-рд╕рддреНрд░
- org.freedesktop.ScreenSaver => org.gnome.ScreenSaver
рд╕реНрд░реЛрдд: www.habr.com