ʻO ka palapala maʻamau i ka wā e pani ai i ka poʻi kamepiula a laka i ka pale me ka hiamoe ʻole

Aloha kākou. Ke hoʻohana nei au iā Lubuntu 18.04 ma kaʻu kamepiula home. I kekahi lā maikaʻi, ua hoʻoholo wau ʻaʻole au i ʻoluʻolu i nā hana a Power Manager i hāʻawi ai i ka wā e pani ai i ka poʻi kamepiula. Makemake au e laka i ka pale i ka wā e pani ai i ka poʻi pona a ma hope o kekahi manawa e hoʻouna i ka pona i ka hibernation. Ua kākau wau i kahi palapala no kēia a wikiwiki wau e haʻi aku iā ʻoe.

Ua loaʻa iaʻu nā pilikia ʻelua.

ʻO ka mea mua, ʻaʻole hana ka hibernation ma waho o ka pahu ma Lubunta; i mea e hiki ai, pono ʻoe e hana i kēia.

E huli i ka UUID swap, e hana i kēia pono ʻoe e holo:

grep swap /etc/fstab

I koʻu hihia, ʻo kēia ka hopena:

# swap was on /dev/mmcblk0p2 during installation
UUID=aebf757e-14c0-410a-b042-3d9a6044a987 none            swap    sw              0       0

A laila pono ʻoe e hoʻohui i ka UUID i nā ʻāpana hoʻomaka kernel. No ka hana ʻana i kēia, hoʻohui i ka resume=UUID=%kou UUID% i ka laina "GRUB_CMDLINE_LINUX_DEFAULT" i ka faila /etc/default/grub

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

A holo i ke kauoha:

sudo update-grub

Pono e hana ka hibernation, e nānā hiki iā ʻoe ke holo:

sudo systemctl hibernate

ʻO ka lua o ka pilikia pehea e laka ai i ka pale o ka mea hoʻohana ma ke ʻano he aʻa me ka hoʻouna ʻole ʻana i ka pona e hiamoe. Ua hoʻoholo wau me ka hoʻohana ʻana i ka dbus-send, aia ke kauoha iā ia iho i ka palapala ma lalo. Inā ʻike kekahi i nā koho ʻē aʻe, e ʻoluʻolu e kākau i nā manaʻo

I kēia manawa e hoʻomaka kākou e kākau i ka palapala.

ʻO ka mea mua e pono ai mākou e hana ma Power Manager ʻo ke koho ʻana i ka Switch off display e like me ka hana i ka wā e pani ai i ka poʻi, i ʻole he paio me kā mākou palapala.

ʻO ka palapala maʻamau i ka wā e pani ai i ka poʻi kamepiula a laka i ka pale me ka hiamoe ʻole

A laila hana i kahi faila /etc/acpi/events/laptop-lid me kēia ʻike:

event=button/lid.*
action=/etc/acpi/laptop-lid.sh

a hana i kahi palapala /etc/acpi/laptop-lid.sh me kēia ʻike:

#!/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

E hoʻokō i ka palapala:

sudo chmod a+x /etc/acpi/laptop-lid.sh

A hoʻomaka hou i ka daemon acpid i hoʻohana ʻia nā loli:

sudo systemctl restart acpid.service

Mākaukau nā mea āpau.

No Gnome i ka palapala, pono ʻoe e hoʻololi:

  • lxsessin => gnome-kaulana
  • org.freedesktop.ScreenSaver => org.gnome.ScreenSaver

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka