Un lanzador ultraligero para Windows que te permite buscar y enfocarse en cualquier ventana abierta al instante.
Inspirado en Spotlight, PowerToys Run y Alfred, pero especializado exclusivamente en control inteligente de ventanas con una estética cyberpunk elegante.
- 🔍 Búsqueda difusa tolerante a errores – Escribe "disc" y obtén Discord, "vs" para Visual Studio
- ⚡ Enfoque instantáneo – Restaura, trae al frente y enfoca ventanas sin robo de foco
- 🧠 Aprendizaje automático – Reordena resultados según tus hábitos de uso
- 🏷️ Alias personalizables – Define atajos:
navegador → Firefox,música → Spotify - ⌨️ Hotkey global – Abre con
Windows+Y(configurable) - 🎨 UI minimalista – Ventana flotante, tema oscuro, tipografía monoespaciada con glow cian
- 📦 Bajo consumo – Solo 35-40 MB de RAM en reposo
- 🔧 Arquitectura modular – Preparada para extensiones futuras (comandos, pestañas, etc.)
Búsqueda difusa: "dis" → Discord
Requisitos:
- .NET 10 SDK
- Windows 11
- Visual Studio 2022 (opcional)
Instalación:
git clone https://github.com/YacaloX/SmartFocus.git
cd SmartFocus
dotnet build
dotnet runEntra a la Sección de Releases en el repositorio para descargar, ya sea la versión Portable o el Instalador
SmartFocus está estructurado en módulos independientes para facilitar mantenimiento y extensiones:
SmartFocus/
├── Core/ # Lógica principal
│ ├── WindowManager.cs # Detección y enfoque de ventanas
│ ├── SearchEngine.cs # Búsqueda difusa
│ ├── HistoryTracker.cs # Aprendizaje por frecuencia
│ ├── AliasManager.cs # Gestión de alias personalizados
│ ├── HotkeyService.cs # Hotkey global (Windows+Y)
│ ├── AppPaths.cs # Rutas de aplicación
│ └── Models/
│ ├── WindowInfo.cs # Información de ventana
│ ├── HistoryEntry.cs # Registro de frecuencia/última vez usado
│ └── MainViewModel.cs # MVVM ViewModel
├── UI/ # Interfaz WPF
│ ├── MainWindow.xaml # Layout
│ └── MainWindow.xaml.cs # Code-behind
├── App.xaml # Configuración de aplicación
└── SmartFocus.csproj # Proyecto
| Módulo | Responsabilidad |
|---|---|
| WindowManager | Enumera ventanas abiertas, las trae al frente y resuelve problemas de focus stealing |
| SearchEngine | Búsqueda fuzzy en títulos de ventanas y procesos |
| HistoryTracker | Almacena uso frecuencia → reordena resultados inteligentemente |
| AliasManager | Permite crear atajos personalizados para ventanas |
| HotkeyService | Captura hotkey global sin interferir con otras aplicaciones |
Edita %AppData%/SmartFocus/aliases.json:
{
"navegador": "firefox",
"música": "spotify",
"código": "visual studio code",
"chat": "discord"
}Ahora buscando "nav" abrirá Firefox.
La configuración del hotkey está en HotkeyService.cs. Edita la constante:
private const Keys HOTKEY = Keys.Y; // Ctrl+Y- Por el momento no hay manera de modificar la hotkey en la versión precompilada, puedes intentar con Cheat Engine o compilando el código tu mismo
- Presiona
Windows+Y– Abre la barra de búsqueda - Escribe lo que buscas – Escribe el nombre de la app (soporta typos)
- Selecciona con ↑↓ o ratón – Navega resultados
- Presiona
Enter– Enfoca la ventana
Ejemplo:
Búsqueda: "vs"
↓ Resultados:
1. visual studio code (C:\Users\...\Code.exe)
2. Visual Studio 2022 (devenv.exe)
SmartFocus registra cada ventana que enfocas:
- Frecuencia: ¿Cuántas veces has abierto Discord?
- Última vez: ¿Cuándo lo abriste por última vez?
Los resultados se reordenan automáticamente basado en tus hábitos. Si siempre abres Chrome antes de Firefox, Chrome aparecerá primero en "brow".
Archivo: %AppData%/SmartFocus/history.json
// Información de una ventana
public record WindowInfo(
IntPtr Handle,
string Title,
uint ProcessId,
string? ProcessName
);
// Resultado de búsqueda
public class SearchResult
{
public string DisplayName { get; set; }
public string WindowTitle { get; set; }
public IntPtr Handle { get; set; }
public string ProcessName { get; set; }
}- Soporte para comandos de sistema (abrir archivos, ejecutar scripts)
- Pestañas dinámicas (Windows, Aplicaciones, Archivos, etc.)
- Integración con Everything Search (búsqueda de archivos)
- Temas personalizables
- Plugin system
- Tests unitarios
- Hotkey Modificable
- Menú de Ajustes
- Focus stealing en algunas aplicaciones (Chromium) – En investigación
- Rendimiento con 100+ ventanas abiertas – Optimización pendiente
¿Encontraste un bug? Abre una issue
¡Las contribuciones son bienvenidas! Por favor:
- Fork el repositorio
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit cambios (
git commit -m 'Add AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto está bajo la licencia MIT – Ver LICENSE para detalles.
¿Preguntas o sugerencias?
- 📬 Abre una Discussion
- 🐛 Reporta un bug
- ⭐ ¡Dale una estrella si te gusta el proyecto!
- Spotlight (macOS) – Búsqueda rápida
- PowerToys Run (Windows) – Disponibilidad global
- Alfred (macOS) – Aprendizaje automático
Hecho con ❤️ en C# + WPF