Tsika script kana uchivhara chivharo chelaptop uye uchikiya skrini pasina kurara

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.

Tsika script kana uchivhara chivharo chelaptop uye uchikiya skrini pasina kurara

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

Voeg