Mudar para suspender 30 segundos após a tampa ser fechada
Desativar ações padrão de fechamento rápido
Para definir uma hora específica, antes de o computador mudar para a suspensão, precisamos desativar as ações padrão para fechar a tampa. Isso pode ser feito pelos seguintes comandos:
gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action "nothing"
e
gsettings set org.gnome.settings-daemon.plugins.power lid-close-battery-action "nothing"
Ações personalizadas ao fechar a tampa
Posteriormente, precisamos definir ações alternativas no fechamento da tampa, para incluir a quebra de 30 segundos antes da suspensão. Nós podemos ligar esses a eventos existentes.
A questão é se as vantagens disso pesam na configuração mais complicada que seria necessária. Uma versão com script como abaixo consome praticamente zero tanto do processador quanto da memória, mesmo que você tenha executado dez deles.
A vantagem da opção de script é que ela é facilmente reversível; simplesmente não execute mais e restaure suas configurações originais (ou diferentes).
O script
#!/usr/bin/env python3
import time
import subprocess
# set delay time below (seconds)
delay = 30
# set path to lid status file
f = "/proc/acpi/button/lid/LID/state"
# --- set close command below
close_command = ["systemctl", "suspend"]
def get_state():
return "open" in open(f).read()
state1 = get_state()
while True:
time.sleep(3)
state2 = get_state()
if state2 != state1:
t = 0
while not get_state():
time.sleep(1); t = t+1
if t > delay:
subprocess.Popen(close_command)
break
state1 = state2
Como usar
-
Como mencionado, primeiro desabilite as ações padrão de fechar a tampa:
gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action "nothing"
e
gsettings set org.gnome.settings-daemon.plugins.power lid-close-battery-action "nothing"
-
Copie o script em um arquivo vazio, salve-o como
delay_lidsuspend.py
-
Na seção head do script, alguns valores e caminhos padrão são definidos. Provavelmente, você não precisa mudar nada:
# set delay time below (seconds) delay = 30 # set path to lid status file f = "/proc/acpi/button/lid/LID/state" # --- set close command below close_command = ["systemctl", "suspend"]
Não tenho certeza se o caminho para o arquivo de estado da capa ("/ proc / acpi / button / lid / LID / state") é o mesmo em todos os laptops. Teste com o comando:
cat /proc/acpi/button/lid/LID/state
-
Teste- execute o script executando a partir de um terminal:
python3 /path/to/delay_lidsuspend.py
e feche a tampa para ver se funciona como pretendido (aqui fez o trabalho perfeitamente).
-
Se tudo funcionar bem, adicione-o aos aplicativos de inicialização.