Я использую ноутбук с Ubuntu 16.04, Gnome как настольная среда и LightDM как менеджер по входу в систему.
То, что я хочу сделать, должно приостановить компьютер после того, как крышка закрывалась на 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
, Как упомянуто, сначала отключает близкие действия крышки по умолчанию:
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"
Копия сценарий в пустой файл, сохраните его как delay_lidsuspend.py
В главном разделе сценария, некоторые значения по умолчанию и пути установлены. Скорее всего, Вы ничего не должны изменять:
# 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
Тестовый прогон сценарий путем выполнения от терминала:
python3 /path/to/delay_lidsuspend.py
и близко крышка, чтобы видеть, работает ли это, как предназначено (здесь это сделало задание отлично).
, Если все хорошо работает, добавьте его для Запущения Приложений.