mirror of
https://github.com/denizsafak/abogen.git
synced 2026-07-18 13:40:27 +02:00
Better sleep state handling for Linux
This commit is contained in:
+5
-1
@@ -2,6 +2,7 @@ from json import load
|
||||
import os
|
||||
import sys
|
||||
import platform
|
||||
import atexit
|
||||
from PyQt5.QtWidgets import QApplication
|
||||
from PyQt5.QtGui import QIcon
|
||||
from PyQt5.QtCore import qInstallMessageHandler, QtMsgType
|
||||
@@ -9,7 +10,7 @@ from PyQt5.QtCore import qInstallMessageHandler, QtMsgType
|
||||
# Add the directory to Python path
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__)))
|
||||
|
||||
from abogen.utils import get_resource_path, load_config
|
||||
from abogen.utils import get_resource_path, load_config, prevent_sleep_end
|
||||
|
||||
# Set Hugging Face Hub environment variables
|
||||
os.environ["HF_HUB_DISABLE_TELEMETRY"] = "1" # Disable Hugging Face telemetry
|
||||
@@ -27,6 +28,9 @@ from abogen.constants import PROGRAM_NAME, VERSION
|
||||
os.environ["MIOPEN_FIND_MODE"] = "FAST"
|
||||
os.environ["MIOPEN_CONV_PRECISE_ROCM_TUNING"] = "0"
|
||||
|
||||
# Reset sleep states
|
||||
atexit.register(prevent_sleep_end)
|
||||
|
||||
# Ensure sys.stdout and sys.stderr are valid in GUI mode
|
||||
if sys.stdout is None:
|
||||
sys.stdout = open(os.devnull, "w")
|
||||
|
||||
+7
-2
@@ -244,6 +244,7 @@ def get_gpu_acceleration(enabled):
|
||||
|
||||
|
||||
def prevent_sleep_start():
|
||||
from abogen.constants import PROGRAM_NAME
|
||||
system = platform.system()
|
||||
if system == "Windows":
|
||||
import ctypes
|
||||
@@ -254,11 +255,15 @@ def prevent_sleep_start():
|
||||
elif system == "Darwin":
|
||||
_sleep_procs["Darwin"] = create_process(["caffeinate"])
|
||||
elif system == "Linux":
|
||||
# use a sleep that never exits so inhibition stays active
|
||||
# Add program name and reason for inhibition
|
||||
program_name = PROGRAM_NAME
|
||||
reason = "Prevent sleep during abogen process"
|
||||
_sleep_procs["Linux"] = create_process(
|
||||
[
|
||||
"systemd-inhibit",
|
||||
"--what=handle-lid-switch:sleep",
|
||||
f"--who={program_name}",
|
||||
f"--why={reason}",
|
||||
"--what=sleep",
|
||||
"--mode=block",
|
||||
"sleep",
|
||||
"infinity",
|
||||
|
||||
Reference in New Issue
Block a user