ShortcutsHelper/README.md

180 lines
6.5 KiB
Markdown

# 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.