Решение:
В окружении находим пакет venv/Lib/site-packages/eel/__init__.py
Импортируем нужные для фиксации окна либы, а именно
import win32gui
import win32con, win32com.client
import re
Пишем функцию которая будет при открытии закреплять окно.
def _window_enum_callback(hwnd, wildcard):
"""this simple function make eel window always be on top"""
if re.match(wildcard, str(win32gui.GetWindowText(hwnd))) is not None:
win32gui.BringWindowToTop(hwnd)
shell = win32com.client.Dispatch("WScript.Shell")
shell.SendKeys('%')
win32gui.SetForegroundWindow(hwnd)
win32gui.ShowWindow(hwnd, win32con.HWND_TOPMOST)
"""Получаем размер окна и координаты, что бы оно не меня позицию при вызове функции, а лишь закрепляло"""
rect = win32gui.GetWindowRect(hwnd)
x = rect[0]
y = rect[1]
w = rect[2] - x
h = rect[3] - y
win32gui.SetWindowPos(hwnd, win32con.HWND_TOPMOST, x, y, w, h, 0)
В стартовые аргументы добавим флаг "onTop"
_start_args = {
'mode': 'chrome', # What browser is used
'host': 'localhost', # Hostname use for Bottle server
'port': 8000, # Port used for Bottle server (use 0 for auto)
'block': True, # Whether start() blocks calling thread
'jinja_templates': None, # Folder for jinja2 templates
'cmdline_args': ['--disable-http-cache'], # Extra cmdline flags to pass to browser start
'size': None, # (width, height) of main window
'position': None, # (left, top) of main window
'geometry': {}, # Dictionary of size/position for all windows
'close_callback': None, # Callback for when all windows have closed
'app_mode': True, # (Chrome specific option)
'all_interfaces': False, # Allow bottle server to listen for connections on all interfaces
'disable_cache': True, # Sets the no-store response header when serving assets
'default_path': 'index.html', # The default file to retrieve for the root URL
'app': btl.default_app(), # Allows passing in a custom Bottle instance, e.g. with middleware
'onTop': False # Set Chrome Window always be on top False/True <----
}
Ниже в функции
def _static(path):
if _start_args['onTop']: # наша проверка
win32gui.EnumWindows(_window_enum_callback, ".*%s.*"% 'Adder')
Ну и уже в основном коде при старте окна хрома с помощью eel допишем нужный нам статус
eel.start('index.html', onTop = True)
PS возможно это не идеальное решение, но оно работает.