# ShortcutsHelper Una aplicación de escritorio para Windows que te ayuda a gestionar y recordar atajos de teclado específicos para cada aplicación. ## 🎯 Descripción ShortcutsHelper es una herramienta inteligente que detecta automáticamente la aplicación activa en tu sistema y te muestra los atajos de teclado correspondientes. Perfecta para usuarios que trabajan con múltiples aplicaciones y necesitan recordar diferentes combinaciones de teclas. ## ✨ Características Principales ### 🔍 Detección Automática de Aplicaciones - Detecta automáticamente la aplicación activa cada segundo - Cambia automáticamente el contexto de atajos según la aplicación en uso - Ignora la propia aplicación para evitar interferencias ### 📌 Modo Pin - **Modo Normal**: La ventana cambia automáticamente según la aplicación activa - **Modo Pin**: Fija la ventana a una aplicación específica - Visibilidad inteligente: se oculta cuando cambias a otras aplicaciones (excepto en modo Pin) ### ⌨️ Captura de Teclas en Tiempo Real - Captura cualquier combinación de teclas (Ctrl+C, Alt+F4, etc.) - Interfaz intuitiva: solo selecciona una fila y las teclas se capturan automáticamente - Cancelación fácil con la tecla Escape ### 💾 Guardado Automático - Guarda cambios automáticamente por inactividad (5 minutos por defecto) - Persistencia de configuración entre sesiones - Configuración individual por aplicación (posición de ventana, tamaño de columnas) ### ⭐ Sistema de Favoritos - Marca atajos importantes como favoritos - Resaltado visual de atajos favoritos - Organización mejorada de tus atajos más usados ## 🚀 Requisitos del Sistema - **Sistema Operativo**: Windows 10/11 - **Framework**: .NET 8.0 Windows Runtime - **Memoria**: Mínimo 50 MB RAM - **Espacio**: 20 MB en disco ## 📦 Instalación 1. Clona o descarga el repositorio 2. Abre el proyecto en Visual Studio 2022 o superior 3. Restaura los paquetes NuGet: ``` dotnet restore ``` 4. Compila el proyecto: ``` dotnet build ``` 5. Ejecuta la aplicación: ``` dotnet run ``` ## 🎮 Uso ### Uso Básico 1. **Inicia la aplicación** - Se abrirá una ventana siempre visible 2. **Cambia de aplicación** - La ventana mostrará automáticamente los atajos correspondientes 3. **Agrega atajos**: - Haz clic en una fila vacía - Presiona las teclas para capturar el atajo - Escribe la descripción 4. **Guarda automáticamente** - Los cambios se guardan por inactividad ### Captura de Teclas 1. **Selecciona una fila** (haciendo clic en la columna "Atajo") 2. **Método 1**: Doble clic en la celda del atajo 3. **Método 2**: Clic derecho → "⌨️ Capturar Teclas" 4. **Presiona la combinación** de teclas deseada 5. **Cancela** con Escape si es necesario ### Modo Pin - **Activar**: Haz clic en el botón 📌 en la esquina superior izquierda - **Cuando está activo**: La ventana solo aparece cuando estás en la aplicación fijada - **Desactivar**: Haz clic nuevamente en el botón (se convertirá en 📍) ### Gestión de Atajos - **Eliminar**: Clic derecho → "🗑️ Eliminar" - **Marcar como favorito**: Activa la casilla ⭐ - **Editar descripción**: Haz clic en la celda de descripción - **Atajos modificados**: Se muestran en cursiva hasta guardarse ## 🎨 Interfaz de Usuario ### Elementos Principales - **Header azul**: Muestra la aplicación actual y el estado de Pin - **Botón Pin**: 📌 (activo) / 📍 (inactivo) - **Contador de atajos**: Número total de atajos para la aplicación actual - **DataGrid**: Tabla con columnas: - ⭐ **Favorito**: Checkbox para marcar atajos importantes - **Atajo**: Combinación de teclas (fuente monoespaciada) - **Descripción**: Explicación del atajo (soporte multilínea) ### Indicadores Visuales - **Fondo amarillo**: Atajos marcados como favoritos - **Texto en cursiva**: Atajos con cambios pendientes de guardar - **Filas alternadas**: Mejor legibilidad con fondo gris claro ## ⚙️ Configuración ### Configuración Automática - **Posición de ventana**: Se recuerda por aplicación - **Tamaño de ventana**: Personalizable y persistente - **Ancho de columnas**: Se ajusta automáticamente - **Aplicación fijada**: Se mantiene entre sesiones ### Archivos de Configuración La aplicación guarda la configuración en archivos JSON locales: - Configuración general de la aplicación - Atajos específicos por aplicación - Configuración de interfaz por aplicación ## 🔧 Dependencias - **MouseKeyHook**: Captura global de teclas - **CommunityToolkit.Mvvm**: Patrón MVVM - **Extended.Wpf.Toolkit**: Controles WPF adicionales - **Newtonsoft.Json**: Serialización de configuración - **Ookii.Dialogs.Wpf**: Diálogos nativos de Windows ## 🎯 Casos de Uso ### Para Desarrolladores - Recordar atajos de Visual Studio, IntelliJ, VS Code - Atajos específicos de navegadores y herramientas de desarrollo - Comandos de terminal y Git ### Para Diseñadores - Atajos de Photoshop, Illustrator, Figma - Combinaciones específicas de herramientas creativas - Flujos de trabajo personalizados ### Para Usuarios Generales - Atajos de Office (Word, Excel, PowerPoint) - Combinaciones de Windows y navegadores - Aplicaciones específicas de trabajo ## 🐛 Resolución de Problemas ### La aplicación no detecta cambios de ventana - Verifica que la aplicación tenga permisos de administrador si es necesario - Reinicia la aplicación si el problema persiste ### Los atajos no se guardan - Verifica que la aplicación tenga permisos de escritura en su directorio - Espera al guardado automático (5 minutos) o cierra la aplicación para forzar el guardado ### La ventana no se muestra/oculta correctamente - Revisa el estado del modo Pin - Verifica que la aplicación objetivo esté en primer plano ## 🤝 Contribución ¡Las contribuciones son bienvenidas! Si encuentras errores o tienes ideas para mejoras: 1. Crea un issue describiendo el problema o la mejora 2. Haz un fork del repositorio 3. Crea una rama para tu característica 4. Realiza tus cambios 5. Envía un pull request ## 📄 Licencia Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles. ## 🔗 Links Útiles - [.NET 8.0 Download](https://dotnet.microsoft.com/download/dotnet/8.0) - [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) - [WPF Documentation](https://docs.microsoft.com/en-us/dotnet/desktop/wpf/) --- **Nota**: Esta aplicación está diseñada específicamente para Windows y utiliza APIs nativas del sistema operativo para la detección de ventanas y captura de teclas.