Приостановите на крышке близко после тайм-аута

Я использую ноутбук с Ubuntu 16.04, Gnome как настольная среда и LightDM как менеджер по входу в систему.

То, что я хочу сделать, должно приостановить компьютер после того, как крышка закрывалась на 30 секунд. Действительно ли это возможно?

1
задан 19 March 2017 в 18:45

1 ответ

Переключатель для приостановки спустя 30 секунд после крышки закрывается

<час>

, Отключают действия плотно закрывающейся крышки по умолчанию

Для назначения определенного времени, прежде чем компьютер должен будет переключиться для приостановки, мы должны отключить действия по умолчанию для закрытия крышки. Это может быть сделано следующими командами:

gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action "nothing"

и

gsettings set org.gnome.settings-daemon.plugins.power lid-close-battery-action "nothing"

Пользовательские действия на заключительной крышке

Впоследствии, мы должны установить альтернативные действия с закрытием крышки, для включения повреждения 30 секунд, прежде чем приостановят. Мы можем рычаг те, которые к существующим событиям.

вопрос состоит в том, если бы преимущества этого весят до более сложной установки, которая потребовала бы. Версия в виде сценария как ниже использует практически нулевой и от Вашего процессора и от Вашей памяти даже при выполнении десяти из них.

преимущество опции в виде сценария состоит в том, что это легко revertible; просто не выполняйте его больше и восстанавливайте Ваш оригинал (или отличающийся) настройки.

сценарий

#!/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

, Как использовать

  1. , Как упомянуто, сначала отключает близкие действия крышки по умолчанию:

    gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action "nothing"
    

    и

    gsettings set org.gnome.settings-daemon.plugins.power lid-close-battery-action "nothing"
    
  2. Копия сценарий в пустой файл, сохраните его как delay_lidsuspend.py

  3. В главном разделе сценария, некоторые значения по умолчанию и пути установлены. Скорее всего, Вы ничего не должны изменять:

    # 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"]
    

    я не уверен, что путь к Вашему файлу состояния крышки ("/proc/acpi/button/lid/LID/state") является тем же на каждом ноутбуке. Тест с командой:

    cat /proc/acpi/button/lid/LID/state
    
  4. Тестовый прогон сценарий путем выполнения от терминала:

    python3 /path/to/delay_lidsuspend.py
    

    и близко крышка, чтобы видеть, работает ли это, как предназначено (здесь это сделало задание отлично).

  5. , Если все хорошо работает, добавьте его для Запущения Приложений.

3
ответ дан 7 December 2019 в 12:35

Другие вопросы по тегам:

Похожие вопросы: