Assalamu alaikum. Ina amfani da Lubuntu 18.04 akan kwamfutar tafi-da-gidanka na gida. Wata rana mai kyau na yanke shawarar cewa ban gamsu da ayyukan da Manajan Wuta ya bayar lokacin rufe murfin kwamfutar tafi-da-gidanka ba. Ina so in kulle allon lokacin rufe murfin kwamfutar tafi-da-gidanka kuma bayan Ιan lokaci aika kwamfutar tafi-da-gidanka cikin kwanciyar hankali. Na rubuta rubutun don wannan kuma na yi gaggawar raba shi tare da ku.
Na ci karo da matsaloli biyu.
Na farko, hibernation baya aiki daga cikin akwatin a cikin Lubunta; don kunna shi, kuna buΖatar yin haka.
Nemo musanya UUID, don yin wannan kuna buΖatar gudu:
grep swap /etc/fstab
A halina abin da ake fitarwa shine kamar haka:
# swap was on /dev/mmcblk0p2 during installation
UUID=aebf757e-14c0-410a-b042-3d9a6044a987 none swap sw 0 0
Sannan kuna buΖatar Ζara UUID zuwa sigogin farawa na kernel. Don yin wannan, Ζara ci gaba = UUID =% UUID Ιinku% zuwa layin "GRUB_CMDLINE_LINUX_DEFAULT" a cikin fayil /etc/default/grub
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=aebf757e-14c0-410a-b042-3d9a6044a987"
...
Kuma gudanar da umurnin:
sudo update-grub
Yanzu hibernation yakamata yayi aiki, don bincika zaku iya gudu:
sudo systemctl hibernate
Matsala ta biyu kuma ita ce yadda ake kulle screen din mai amfani a matsayin root ba tare da aika kwamfutar tafi-da-gidanka ba. Na warware shi ta amfani da dbus-send, umarnin da kansa yana cikin rubutun da ke Ζasa. Idan kowa ya san wasu zaΙuΙΙuka, da fatan za a rubuta a cikin sharhi
Yanzu bari mu fara rubuta rubutun.
Abu na farko da muke buΖatar yi a cikin Power Manager shine zaΙin Kashe nuni azaman aikin yayin rufe murfin, don kada a sami sabani da rubutun mu.
Sannan ΖirΖirar fayil /etc/acpi/events/laptop-lid tare da abun ciki mai zuwa:
event=button/lid.*
action=/etc/acpi/laptop-lid.sh
kuma ΖirΖirar rubutun /etc/acpi/laptop-lid.sh tare da abun ciki mai zuwa:
#!/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
Yin aikin aiwatar da rubutun:
sudo chmod a+x /etc/acpi/laptop-lid.sh
Kuma sake kunna acpid daemon domin a yi amfani da canje-canje:
sudo systemctl restart acpid.service
Duk abin shirye.
Don Gnome a cikin rubutun kuna buΖatar canza:
- lxsessin => gnome-zaman
- org.freedesktop.ScreenSaver => org.gnome.ScreenSaver
source: www.habr.com