diff --git a/README.md b/README.md new file mode 100644 index 0000000..bfca270 --- /dev/null +++ b/README.md @@ -0,0 +1,180 @@ +# 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. \ No newline at end of file