แžŸแŸ’แž‚แŸ’แžšแžธแž”แž•แŸ’แž‘แžถแž›แŸ‹แžแŸ’แž›แžฝแž“แž“แŸ…แž–แŸแž›แž”แžทแž‘แž‚แž˜แŸ’แžšแž”แž€แžปแŸ†แž–แŸ’แž™แžผแž‘แŸแžšแž™แžฝแžšแžŠแŸƒ แž“แžทแž„แž…แžถแž€แŸ‹แžŸแŸ„แžขแŸแž€แŸ’แžšแž„แŸ‹แžŠแŸ„แž™แž˜แžทแž“แžŠแŸแž€

แžŸแžฝแžŸแŸ’แžแžธโ€‹แžขแŸ’แž“แž€โ€‹แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž‚แŸ’แž“แžถแŸ” แžแŸ’แž‰แžปแŸ†แž€แŸ†แž–แžปแž„แž”แŸ’แžšแžพ Lubuntu 18.04 แž“แŸ…แž›แžพแž€แžปแŸ†แž–แŸ’แž™แžผแž‘แŸแžšแž™แžฝแžšแžŠแŸƒแž•แŸ’แž‘แŸ‡แžšแž”แžŸแŸ‹แžแŸ’แž‰แžปแŸ†แŸ” แžแŸ’แž„แŸƒแž˜แžฝแž™แžแŸ’แž‰แžปแŸ†แž”แžถแž“แžŸแž˜แŸ’แžšแŸแž…แž…แžทแžแŸ’แžแžแžถแžแŸ’แž‰แžปแŸ†แž˜แžทแž“แž–แŸแž‰แž…แžทแžแŸ’แžแž“แžนแž„แžŸแž€แž˜แŸ’แž˜แž—แžถแž–แžŠแŸ‚แž›แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แžแžถแž˜แž–แž›แž”แžถแž“แž•แŸ’แžแž›แŸ‹แž“แŸ…แž–แŸแž›แž”แžทแž‘แž‚แž˜แŸ’แžšแž”แž€แžปแŸ†แž–แŸ’แž™แžผแž‘แŸแžšแž™แžฝแžšแžŠแŸƒแŸ” แžแŸ’แž‰แžปแŸ†โ€‹แž…แž„แŸ‹โ€‹แž…แžถแž€แŸ‹แžŸแŸ„โ€‹แžขแŸแž€แŸ’แžšแž„แŸ‹โ€‹แž–แŸแž›โ€‹แž”แžทแž‘โ€‹แž‚แž˜แŸ’แžšแž”โ€‹แž€แžปแŸ†แž–แŸ’แž™แžผแž‘แŸแžšโ€‹แž™แžฝแžšแžŠแŸƒ แž แžพแž™โ€‹แž˜แžฝแž™โ€‹แžŸแž“แŸ’แž‘แžปแŸ‡โ€‹แž€แŸ’แžšแŸ„แž™โ€‹แž˜แž€โ€‹แž€แŸโ€‹แž•แŸ’แž‰แžพโ€‹แž€แžปแŸ†แž–แŸ’แž™แžผแž‘แŸแžšโ€‹แž™แžฝแžšแžŠแŸƒโ€‹แž‘แŸ…โ€‹แžฑแŸ’แž™โ€‹แžŸแŸ’แž„แžถแžแŸ‹แŸ” แžแŸ’แž‰แžปแŸ†แž”แžถแž“แžŸแžšแžŸแŸแžšแžŸแŸ’แž‚แŸ’แžšแžธแž”แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžšแžฟแž„แž“แŸแŸ‡ แž แžพแž™แžแŸ’แž‰แžปแŸ†แž”แŸ’แžšแž‰แžถแž”แŸ‹แž…แŸ‚แž€แžšแŸ†แž›แŸ‚แž€แžœแžถแž‡แžถแž˜แžฝแž™แžขแŸ’แž“แž€แŸ”

แžแŸ’แž‰แžปแŸ†แž”แžถแž“แž‡แžฝแž”แž”แž‰แŸ’แž แžถแž–แžธแžšแŸ”

แž‡แžถแžŠแŸ†แž”แžผแž„ แž€แžถแžš hibernation แž˜แžทแž“แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž…แŸแž‰แž–แžธแž”แŸ’แžšแžขแž”แŸ‹แž“แŸ…แž€แŸ’แž“แžปแž„ 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 แž‘แŸ…แž€แŸ’แž“แžปแž„แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แžแžบแžŽแŸ‚แž›แŸ” แžŠแžพแž˜แŸ’แž”แžธแž’แŸ’แžœแžพแžŠแžผแž…แž“แŸแŸ‡แž”แž“แŸ’แžแŸ‚แž˜แž”แŸ’แžšแžœแžแŸ’แžแžทแžšแžผแž”แžŸแž„แŸ’แžแŸแž”=UUID=% UUID% แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แž‘แŸ…แž”แž“แŸ’แž‘แžถแžแŸ‹ โ€œGRUB_CMDLINE_LINUX_DEFAULTโ€ แž“แŸ…แž€แŸ’แž“แžปแž„แžฏแž€แžŸแžถแžš /etc/default/grub

...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=aebf757e-14c0-410a-b042-3d9a6044a987"
...

แž แžพแž™แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถแŸ–

sudo update-grub

แžฅแžกแžผแžœแž“แŸแŸ‡ hibernation แž‚แžฝแžšแžแŸ‚แžŠแŸ†แžŽแžพแžšแž€แžถแžš แžŠแžพแž˜แŸ’แž”แžธแž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžขแŸ’แž“แž€แžขแžถแž…แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž”แžถแž“แŸ–

sudo systemctl hibernate

แž”แž‰แŸ’แž แžถแž‘แžธแž–แžธแžšแž‚แžบแžšแž”แŸ€แž”แž…แžถแž€แŸ‹แžŸแŸ„แžขแŸแž€แŸ’แžšแž„แŸ‹แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž‡แžถ root แžŠแŸ„แž™แž˜แžทแž“แž”แž‰แŸ’แž‡แžผแž“แž€แžปแŸ†แž–แŸ’แž™แžผแž‘แŸแžšแž™แžฝแžšแžŠแŸƒแž‘แŸ…แž‚แŸแž„แŸ” แžแŸ’แž‰แžปแŸ†แž”แžถแž“แžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžœแžถแžŠแŸ„แž™แž”แŸ’แžšแžพ 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-session
  • org.freedesktop.ScreenSaver => org.gnome.ScreenSaver

แž”แŸ’แžšแž—แž–: www.habr.com

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹