Window Focus Helper es una herramienta liviana que se ejecuta en la bandeja del sistema (systray) y permite traer al frente cualquier ventana de Windows mediante una simple URL HTTP.
Está pensada especialmente para integrarse con Companion (Elgato Stream Deck, Bitfocus Companion, etc.), aunque puede usarse con cualquier software que pueda hacer peticiones HTTP GET.
- 📋 Generá URLs para Companion con un solo clic.
- 🖥️ Auto‑registro al iniciar: detecta todas las ventanas abiertas y crea rutas automáticamente.
- 🧠 Simplifica navegadores: las ventanas de Google Chrome se agrupan bajo
google-chrome(sin el título de la pestaña). - ⚙️ Puerto configurable por línea de comandos o desde el menú del systray.
- 🔄 Funciona siempre: incluso si la app está en segundo plano, las ventanas saltan al frente correctamente (truco de foco).
- 🎨 Interfaz oscura moderna con búsqueda y selección de ventanas.
- 🧷 Mismo ícono para la ventana y la bandeja.
- 📦 Ejecutable único (compilado con PyInstaller).
Si ya tenés el .exe compilado, simplemente ejecutalo.
El programa se aloja en la bandeja del sistema (cerca del reloj).
Hacé clic derecho en el icono de la bandeja y elegí "Seleccionar ventana…".
- Desde línea de comandos:
WindowFocus.exe --port=8080(por defecto es3500). - Desde la aplicación:
Clic derecho en el icono > "Cambiar puerto…" → ingresá un puerto entre1024y65535.
La aplicación inicia un pequeño servidor HTTP en localhost:PUERTO.
Cada URL corresponde a una ventana y tiene el formato:
http://localhost:3500/nombre-de-la-ventana
Ejemplos:
http://localhost:3500/whatsapp(trae al frente WhatsApp)http://localhost:3500/google-chrome(trae Chrome, sin importar la pestaña)http://localhost:3500/resolume-arena(trae Resolume Arena)
- Abrí la interfaz de Window Focus y seleccioná la ventana que querés controlar.
- Ajustá el texto de búsqueda si es necesario (p. ej.,
Resolume Arenaen lugar del título completo). - Copiá la URL con el botón
📋 Copiar URL para Companion. - En Companion, creá un botón (o usá un paso en una secuencia) y agregá una acción de tipo HTTP Request (
http: GET). - Pegá la URL copiada en el campo URI.
- Listo. Al presionar el botón, la ventana saltará al frente inmediatamente.
La barra lateral derecha de la interfaz te muestra:
- El título completo de la ventana seleccionada.
- Un campo "Buscar por" editable, donde podés acortar el texto (ejemplo:
Resolume Arenaen vez deResolume Arena - Composition (1920x1080, 8bpc)). - La URL generada que se actualiza automáticamente.
Pegá esa URL en Companion o en cualquier herramienta que pueda hacer GET.
"El HTTP server no responde"
Verificá que el puerto no esté bloqueado por otro programa. Probá cambiar el puerto.
"La ventana no se trae al frente desde Companion"
La última versión ya incluye una técnica avanzada (simulación de tecla Alt) para eludir las restricciones de foco de Windows. Si aún así falla, asegurate de que la ventana no esté minimizada en la barra de tareas con animación (raro). Reiniciá el programa también puede ayudar.
"El texto en la interfaz se ve extraño"
El ejecutable incluye fuentes Segoe UI y Consolas; si faltan, usa las fuentes por defecto del sistema y debería verse bien.
"No se registran ventanas nuevas automáticamente"
El auto‑registro ocurre solo al iniciar la aplicación. Si abrís o cerrás ventanas después, tenés que abrir el selector y copiar la URL manualmente (o reiniciar el programa).
Si querés generar el .exe por tu cuenta:
- Instalá Python 3.9 o superior.
- Instalá las dependencias:
pip install pyinstaller pystray pillow
- Ejecutá PyInstaller:
pyinstaller --onefile --noconsole --hidden-import=pystray._win32 window_focus.py
- El ejecutable aparecerá en la carpeta dist/.
Autor: Pedro Becerra - 2026 Proyecto creado para integración con Companion y automatización de escritorio.