Sobre el proyecto

grubForge es una aplicación de interfaz de usuario terminal (TUI) diseñada para gestionar y personalizar el cargador de arranque GRUB en sistemas Linux. Busca abordar las complejidades y riesgos asociados con la edición manual de archivos de configuración de GRUB, ofreciendo una alternativa más segura, clara y accesible. La aplicación se basa en cuatro principios fundamentales: * **Seguridad**: Garantiza la creación de una copia de seguridad antes de cada cambio, requiere confirmación para las acciones y valida la entrada. * **Claridad**: Explica cada configuración de GRUB en lenguaje sencillo y distingue entre configuraciones requeridas y opcionales. * **Estética**: Presenta una TUI moderna y bien diseñada en lugar de una pantalla de configuración básica. * **Facilidad de uso**: Está diseñada para ser controlada por teclado, rápida y utilizable por usuarios sin conocimientos profundos del cargador de arranque. Las características principales incluyen: * **Panel de control**: Proporciona una vista general de la configuración actual de GRUB e indica cuándo el menú de arranque está desactualizado. * **Editor de configuración**: Permite editar configuraciones de GRUB con validación en tiempo real y explicaciones. * **Navegador de temas**: Permite explorar, previsualizar y aplicar temas de GRUB instalados. * **Entradas de arranque**: Facilita reordenar, renombrar y crear entradas de arranque, incluyendo la detección de otros sistemas operativos. Los usuarios pueden guardar órdenes personalizadas y restaurar el orden original. * **Copia de seguridad y restauración**: Crea automáticamente copias de seguridad con marca de tiempo antes de cada cambio, conservando las 10 más recientes, que pueden restaurarse desde la aplicación. * **Reconstrucción del menú de arranque**: Ofrece una opción con un solo golpe de tecla para reconstruir el menú de arranque después de cualquier modificación. * **Atajos de teclado consistentes**: Proporciona teclas de acción universales (Editar, Guardar, Aplicar, Actualizar, Regenerar) que funcionan en todas las pantallas, junto con teclas específicas de cada pantalla. * **Operación a nivel de usuario**: Se ejecuta como usuario normal, utilizando Polkit para operaciones con privilegios, asegurando que la aplicación nunca maneje contraseñas de root. La filosofía de seguridad de grubForge prioriza prevenir la ruptura del cargador de arranque. Cada cambio es sometido a validación, confirmación, copia de seguridad automática y autorización mediante Polkit. Un pequeño script auxiliar de vocabulario fijo maneja las tareas a nivel de root, revisando todas las entradas y garantizando escrituras atómicas en archivos de configuración críticos. La aplicación advierte explícitamente a los usuarios sobre problemas potenciales, como la aparición de actualizaciones del kernel en el menú de arranque cuando una orden personalizada de arranque está activa, ya que los generadores automáticos de entradas de GRUB están desactivados en este modo. Las instrucciones de instalación se proporcionan para Arch Linux (vía AUR o fuente), Debian/Ubuntu y otras distribuciones, detallando las dependencias necesarias como Python 3.10+, `python-textual`, `python-rich` y `polkit`. El uso enfatiza ejecutar `grubforge` como usuario normal, con `sudo grubforge` disponible para entornos solo de consola o para usuarios que lo prefieran. La hoja de ruta del proyecto incluye migrar a la base compartida `forgekit` para mejorar la consistencia de la UI y otras mejoras como abordar entradas duplicadas de arranque, mejorar la legibilidad en consolas de texto plano y proporcionar advertencias cuando las entradas de arranque están congeladas. El registro de cambios destaca actualizaciones recientes, incluido el cambio al manejo de permisos basado en Polkit y la mejora de la lectura del menú de arranque para sistemas con permisos restringidos de `grub.cfg`. grubForge es un esfuerzo colaborativo entre un humano y una IA, con un enfoque transparente hacia su proceso de desarrollo. Está publicado bajo la Licencia Pública General de GNU v3.0.