የላፕቶፑን ክዳን ሲዘጋ እና ስክሪኑን ያለ እንቅልፍ ሲቆልፍ ብጁ ስክሪፕት

ሰላም ሁላችሁም። በቤቴ ላፕቶፕ ላይ 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=%የእርስዎን UUID% ያክሉ

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

እና ትዕዛዙን ያሂዱ:

sudo update-grub

አሁን በእንቅልፍ ላይ ማረፍ መስራት አለበት፣ ለመፈተሽ መሮጥ ይችላሉ፡-

sudo systemctl hibernate

ሁለተኛው ችግር ላፕቶፑን እንቅልፍ ሳይልክ የተጠቃሚውን ስክሪን እንደ root መቆለፍ ነው። እኔ dbus-send በመጠቀም ፈታሁት, ትዕዛዙ ራሱ ከታች ባለው ስክሪፕት ውስጥ ነው. ሌሎች አማራጮችን የሚያውቅ ካለ፣ እባክዎን በአስተያየቶቹ ውስጥ ይፃፉ

አሁን ስክሪፕቱን መጻፍ እንጀምር.

በPower Manager ውስጥ ማድረግ ያለብን የመጀመሪያው ነገር ክዳኑን በሚዘጋበት ጊዜ ማሳያውን ማጥፋት የሚለውን መምረጥ ነው፣ ስለዚህም ከስክሪፕታችን ጋር ምንም አይነት ግጭት እንዳይፈጠር።

የላፕቶፑን ክዳን ሲዘጋ እና ስክሪኑን ያለ እንቅልፍ ሲቆልፍ ብጁ ስክሪፕት

ከዚያ ከሚከተለው ይዘት ጋር ፋይል /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

ሁሉም ነገር ዝግጁ ነው.

በስክሪፕቱ ውስጥ ላለው Gnome መቀየር አለቦት፡-

  • lxsessin => gnome-ክፍለ ጊዜ
  • org.freedesktop.ScreenSaver => org.gnome.ScreenSaver

ምንጭ: hab.com

አስተያየት ያክሉ