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.
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