omega/app/utils.py
2025-04-05 21:53:58 +02:00

53 lines
1.4 KiB
Python

import sys
import logging
from app.core.config import settings
def setup_logger():
logger = logging.getLogger()
verbosity = settings.VERBOSITY
level_map = {
"DEBUG": logging.DEBUG,
"INFO": logging.INFO,
"WARNING": logging.WARNING,
"ERROR": logging.ERROR,
"CRITICAL": logging.CRITICAL,
}
log_level = level_map.get(verbosity)
logger.setLevel(log_level)
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(log_level)
formatter = logging.Formatter("[%(levelname)s] - %(name)s:%(lineno)d - %(message)s")
handler.setFormatter(formatter)
logger.addHandler(handler)
if sys.platform == "win32":
import win32con
import win32gui
import win32api
import win32process
def make_window_non_activating(win):
hwnd = int(win.winId())
ex_style = win32gui.GetWindowLong(hwnd, win32con.GWL_EXSTYLE)
# Add styles
ex_style |= win32con.WS_EX_NOACTIVATE
ex_style |= win32con.WS_EX_TOPMOST
ex_style |= win32con.WS_EX_TOOLWINDOW # optional: hide from Alt+Tab
win32gui.SetWindowLong(hwnd, win32con.GWL_EXSTYLE, ex_style)
# Force update
win32gui.SetWindowPos(
hwnd, win32con.HWND_TOPMOST,
0, 0, 0, 0,
win32con.SWP_NOMOVE | win32con.SWP_NOSIZE | win32con.SWP_NOACTIVATE
)