Mhoroi mose. Ndiri kushandisa Lubuntu 18.04 palaptop yangu yekumba. Rimwe zuva rakanaka ndakafunga kuti handina kugutsikana nezviito izvo Power Manager akapa pakuvhara chivharo chelaptop. Ini ndaida kukiya skrini kana ndichivhara chivharo chelaptop uye mushure mechinguva tumira iyo laptop mukuhibernation. Ndakanyora script yeizvi uye ndinokurumidza kugovana newe.
Ndakasangana nematambudziko maviri.
Chekutanga, hibernation haishande kunze kwebhokisi riri muLubunta; kuti uigonese, unofanirwa kuita zvinotevera.
Tsvaga iyo UUID swap, kuti uite izvi unofanirwa kumhanya:
grep swap /etc/fstab
Munyaya yangu zvinobuda ndezvizvi:
# swap was on /dev/mmcblk0p2 during installation
UUID=aebf757e-14c0-410a-b042-3d9a6044a987 none swap sw 0 0
Ipapo iwe unofanirwa kuwedzera iyo UUID kune kernel yekutanga paramita. Kuti uite izvi, wedzera resume = UUID =% yako UUID% kumutsara "GRUB_CMDLINE_LINUX_DEFAULT" mufaira /etc/default/grub
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=aebf757e-14c0-410a-b042-3d9a6044a987"
...
Uye mhanya murairo:
sudo update-grub
Iye zvino hibernation inofanira kushanda, kutarisa kuti unogona kumhanya:
sudo systemctl hibernate
Dambudziko rechipiri raive rekuvhara skrini yemushandisi semudzi pasina kutumira laptop kuti irare. Ndakazvigadzirisa ndichishandisa dbus-send, iwo mutemo pachawo uri mune script pazasi. Kana paine anoziva dzimwe sarudzo, ndapota nyora mumashoko
Zvino ngatitangei kunyora script.
Chinhu chekutanga chatinofanira kuita muSimba Maneja ndechekusarudza Kudzima kuratidzwa sechiito kana uchivhara chivharo, kuitira kuti pasave nekupokana nescript yedu.
Wobva wagadzira faira /etc/acpi/events/laptop-lid ine zvinotevera zvirimo:
event=button/lid.*
action=/etc/acpi/laptop-lid.sh
uye gadzira script /etc/acpi/laptop-lid.sh ine zvinotevera zvirimo:
#!/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
Kuita kuti script iite:
sudo chmod a+x /etc/acpi/laptop-lid.sh
Uye tangazve iyo acpid daemon kuitira kuti shanduko dzishandiswe:
sudo systemctl restart acpid.service
Zvese zvakagadzirira.
Kune Gnome mune script iwe unofanirwa kuchinja:
- lxsessin => gnome-session
- org.freedesktop.ScreenSaver => org.gnome.ScreenSaver
Source: www.habr.com