Suspender na tampa fechar após o tempo limite

1

Estou usando um laptop com o Ubuntu 16.04, o Gnome como ambiente de desktop e o LightDM como gerenciador de login.

O que eu quero fazer é suspender o computador após a tampa ter sido fechada por 30 segundos. Isso é possível?

    
por tjespe 12.02.2017 / 15:12

1 resposta

3

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

  1. 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"
    
  2. Copie o script em um arquivo vazio, salve-o como delay_lidsuspend.py

  3. 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
    
  4. 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).

  5. Se tudo funcionar bem, adicione-o aos aplicativos de inicialização.

por Jacob Vlijm 12.02.2017 / 19:16