Zolemba mwamakonda mukatseka chivindikiro cha laputopu ndikutseka chinsalu osagona

Moni nonse. Ndikugwiritsa ntchito Lubuntu 18.04 pa laputopu yanga yakunyumba. Tsiku lina labwino ndinaganiza kuti sindinakhutire ndi zomwe Power Manager adapereka potseka chivindikiro cha laputopu. Ndinkafuna kutseka chinsalu potseka chivindikiro cha laputopu ndipo patapita kanthawi ndikutumiza laputopuyo kuti ikhale hibernation. Ndinalemba script pa izi ndipo ndikufulumira kugawana nanu.

Ndinakumana ndi mavuto awiri.

Choyamba, hibernation sikugwira ntchito m'bokosi la Lubunta; kuti muthe, muyenera kuchita izi.

Pezani kusintha kwa UUID, kuti muchite izi muyenera kuthamanga:

grep swap /etc/fstab

Kwa ine zotsatira zake ndi izi:

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

Kenako muyenera kuwonjezera UUID ku magawo oyambira kernel. Kuti muchite izi, onjezani resume=UUID=%UUID% yanu pamzere "GRUB_CMDLINE_LINUX_DEFAULT" mufayilo /etc/default/grub

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

Ndipo yendetsani lamulo:

sudo update-grub

Tsopano hibernation iyenera kugwira ntchito, kuti muwone kuti mutha kuthamanga:

sudo systemctl hibernate

Vuto lachiwiri linali momwe mungatsekere chinsalu cha wosuta ngati muzu popanda kutumiza laputopu kuti igone. Ndinazithetsa pogwiritsa ntchito dbus-send, lamulo lokha liri mu script pansipa. Ngati wina akudziwa njira zina, chonde lembani mu ndemanga

Tsopano tiyeni tiyambe kulemba script.

Chinthu choyamba chomwe tiyenera kuchita mu Power Manager ndikusankha Chotsani chiwonetsero ngati chochita potseka chivindikiro, kuti pasakhale mikangano ndi zolemba zathu.

Zolemba mwamakonda mukatseka chivindikiro cha laputopu ndikutseka chinsalu osagona

Kenako pangani fayilo /etc/acpi/events/laptop-lid ndi izi:

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

ndikupanga script /etc/acpi/laptop-lid.sh ndi izi:

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

Kupanga script kukwaniritsidwa:

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

Ndipo yambitsaninso daemon ya acpid kuti zosintha zigwiritsidwe:

sudo systemctl restart acpid.service

Chilichonse chakonzeka.

Kwa Gnome mu script muyenera kusintha:

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

Source: www.habr.com

Kuwonjezera ndemanga