# whisper_app/overlay.py import os import tkinter as tk from whisper_app import app _window: tk.Toplevel | None = None def create(root: tk.Tk) -> None: global _window win = tk.Toplevel(root) win.withdraw() win.overrideredirect(True) win.attributes("-topmost", True) win.attributes("-alpha", 0.92) win.configure(bg="#1a1a1a") frame = tk.Frame(win, bg="#1a1a1a", padx=12, pady=10) frame.pack(fill="both", expand=True) dot = tk.Canvas(frame, width=14, height=14, bg="#1a1a1a", highlightthickness=0) dot.create_oval(2, 2, 12, 12, fill="#e03030", outline="") dot.pack(side="left", padx=(0, 8)) _sans = "Segoe UI" if os.name == "nt" else "sans-serif" tk.Label(frame, text="Aufnahme läuft …", fg="white", bg="#1a1a1a", font=(_sans, 11)).pack(side="left") _window = win def show() -> None: if app.overlay_tk and _window: app.overlay_tk.after(0, _show_main) def hide() -> None: if app.overlay_tk and _window: app.overlay_tk.after(0, _hide_main) def _show_main() -> None: sw = app.overlay_tk.winfo_screenwidth() sh = app.overlay_tk.winfo_screenheight() _window.geometry(f"220x54+{sw - 240}+{sh - 100}") _window.deiconify() _window.lift() def _hide_main() -> None: _window.withdraw()