Qoraalka gaarka ah marka la xiro daboolka laptop-ka oo la xiro shaashadda hurdo la'aan

Salaamu caleykum Waxaan ku isticmaalayaa Lubuntu 18.04 kumbuyuutarka gurigayga. Maalin wanaagsan ayaan go'aansaday in aanan ku qanacsanayn ficillada uu Maamulaha Korontadu bixiyay markii la xirayay daboolka laptop-ka. Waxaan rabay inaan xidho shaashadda markii aan xidhayay daboolka laptop-ka oo aan muddo ka dib u diray laptop-ka inuu galo hibernation. Tan qoraal baan u qoray, waanan ku degdegayaa inaan idinla wadaago.

Waxaan la kulmay laba dhibaato.

Marka hore, hibernation kama shaqeynayo meel ka baxsan sanduuqa Lubunta; si aad awood ugu yeelato, waxaad u baahan tahay inaad sameyso waxyaabaha soo socda.

Soo hel beddelka UUID, si aad tan u samayso waxaad u baahan tahay inaad socodsiiso:

grep swap /etc/fstab

Xaaladdeyda wax-soo-saarku waa kan soo socda:

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

Markaa waxaad u baahan tahay inaad UUID ku darto halbeegyada bilowga kernel-ka. Si tan loo sameeyo, ku dar resume=UUID=% UUIDkaaga% xariiqda "GRUB_CMDLINE_LINUX_DEFAULT" ee faylka /etc/default/grub

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

Oo maamul amarka:

sudo update-grub

Hadda hibernation waa inuu shaqeeyaa, si loo hubiyo inaad ordi karto:

sudo systemctl hibernate

Dhibaatada labaad waxay ahayd sida loo xidho shaashadda isticmaalaha xididka iyada oo aan loo dirin laptop-ka inuu seexdo. Waxaan ku xalliyey isticmaalka dbus-send, amarka laftiisa ayaa ku jira qoraalka hoose. Haddii uu jiro qof yaqaan doorashooyin kale, fadlan ku qor faallooyinka

Hadda aan bilowno qorista qoraalka.

Waxa ugu horreeya ee aan u baahanahay inaan ku sameyno Maareeyaha Korontadu waa inaan doorano daminta bandhiga sida ficilka marka la xirayo daboolka, si aysan u dhicin khilaafyo qoraalkayaga.

Qoraalka gaarka ah marka la xiro daboolka laptop-ka oo la xiro shaashadda hurdo la'aan

Kadib samee fayl /etc/acpi/events/laptop-lid oo wata waxyaabaha soo socda:

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

oo samee qoraal /etc/acpi/laptop-lid.sh oo wata nuxurka soo socda:

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

Samaynta qoraalka la fulin karo:

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

Oo dib u bilow acpid daemon si isbeddelada loo dabaqo:

sudo systemctl restart acpid.service

Dhammaan waa diyaar.

Gnome ee qoraalka waxaad u baahan tahay inaad bedesho:

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

Source: www.habr.com

Add a comment