เจฒเฉˆเจชเจŸเจพเจช เจฒเจฟเจก เจจเฉ‚เฉฐ เจฌเฉฐเจฆ เจ•เจฐเจจ เจ…เจคเฉ‡ เจธเจฒเฉ€เจช เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจธเจ•เฉเจฐเฉ€เจจ เจจเฉ‚เฉฐ เจฒเจพเจ• เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจ•เจธเจŸเจฎ เจธเจ•เฉเจฐเจฟเจชเจŸ

เจธเจพเจฐเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจธเจคเจฟ เจธเจผเฉเจฐเฉ€ เจ…เจ•เจพเจฒ. เจฎเฉˆเจ‚ เจ†เจชเจฃเฉ‡ เจ˜เจฐ เจฆเฉ‡ เจฒเฉˆเจชเจŸเจพเจช 'เจคเฉ‡ 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

เจ…เจคเฉ‡ เจเจธเจฟเจก เจกเฉˆเจฎเจจ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐเฉ‹ เจคเจพเจ‚ เจœเฉ‹ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจฃ:

sudo systemctl restart acpid.service

เจธเจญ เจคเจฟเจ†เจฐ เจนเฉˆ.

เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจ—เจจเฉ‹เจฎ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

  • lxsessin => เจ—เจจเฉ‹เจฎ-เจธเจผเฉˆเจธเจผเจจ
  • org.freedesktop.ScreenSaver => org.gnome.ScreenSaver

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹