MOOdle 2: Premium edition:cool::cool:

April 13, 2026 · View on GitHub

GitHub release (latest by date) GitHub last commit GitHub issues listed on awesome-aragon

Una extensión para personalizar la interfaz de Moodle Unizar. Esta extensión es únicamente visual y no afecta a la funcionalidad de Moodle. Al menos debería.

Note


Esta extensión solo funciona para el moodle de Unizar, pero es bien de facil adaptarla co! Seguramente haya cosas que no funcionen, puedes hacerlo cambiando el @match en el manifest de /fextension/manifest.json

Vista previa de la extensión en acción - 14 temas disponibles


Tabla de Contenidos


Instalación

Firefox (fácil)

  1. Ve a Releases
    releases

  2. Descarga el archivo .xpi
    instalacion

  3. Instala y disfruta (actualizaciones automáticas)
    finalizar


Tampermonkey (Chrome, Edge, Safari, Opera)

¡NUEVO! Ahora disponible como userscript completo con todos los temas.

Instalación Rápida:

  1. Instala Tampermonkey:

  2. Instala el userscript:
    MOOdle-Unizar-Personalizado.user.js

  3. ¡Listo! Recarga Moodle y disfruta 🎉


Características

  • 14 temas predefinidos (Dark, Breaking Bad, Miku, Vaca, Atrio, y más)
  • Tema aleatorio en cada recarga
  • Fondos personalizados para navbar, calendario y tarjetas
  • Fuentes personalizables
  • Foto de perfil unificada
  • Oneko - Gato animado que sigue el cursor
  • Exportar/Importar configuraciones
  • Actualizaciones automáticas
  • Componentes opcionales activables/desactivables
  • Multiplataforma: Extensión (Firefox/Chrome) y Userscript (Tampermonkey)

Uso

Configuración Extensión

  1. Haz clic en el icono de la extensión que saldrá en la barra de navegación cuando estés en Moodle
  2. Selecciona tu tema favorito o activa Tema Aleatorio
  3. Personaliza colores, fuentes e imágenes
  4. Activa/desactiva componentes opcionales (Oneko, fondos, etc.)
  5. Exporta tu configuración para compartirla o guardarla

Configuración Userscript

  1. Haz clic en el icono de Tampermonkey
  2. Selecciona MOOdle Unizar Personalizado
  3. Opciones disponibles:
    • Seleccionar Tema: Elige entre los 14 temas (dark, miku, breaking-bad, etc.)
    • Tema Aleatorio: Activa/desactiva
    • Oneko: Activa/desactiva el gato
    • Restaurar: Volver a valores por defecto

Estructura del Proyecto

├── fextension/                           # Extensión Firefox/Chrome
│   ├── manifest.json                     # Manifest V3
│   ├── content.js                        # Script principal
│   ├── background.js                     # Service worker (auto-tema)
│   ├── options.html/css/js               # Panel de configuración
│   ├── acorn-tokens.css                  # Design system Acorn
│   ├── oneko.js                          # Gato animado
│   └── assets/                           # Recursos de temas (imágenes)
├── MOOdle-Unizar-Personalizado.user.js   # Userscript Tampermonkey
├── sync-themes.js                        # Script de sincronización
├── assets/                               # Recursos generales
├── updates.json                          # Control de versiones
└── README.md                             # Este archivo

Desarrollo

Añadir o Modificar Temas

Los temas se definen en fextension/options.js dentro del objeto PREDEFINED_THEMES.

Important


Debido a la arquitectura de extensiones y userscripts:

  • options.js es la fuente única de verdad
  • background.js necesita una copia para el auto-tema
  • El userscript necesita una copia con URLs de GitHub
  • NO edites manualmente background.js ni el userscript

Flujo de Trabajo

  1. Edita SOLO fextension/options.js

    const PREDEFINED_THEMES = {
        'mi-tema': {
            name: 'Mi Tema',
            images: {
                background: chrome.runtime.getURL("assets/mi-tema/fondo.png"),
                navbarBg: chrome.runtime.getURL("assets/mi-tema/navbar.png"),
                // ... más imágenes
            },
            fontFamily: 'Arial',
            navbarColor: '#FF5733',
            features: { enableBackgroundImages: true, /* ... */ }
        }
    };
    
  2. Ejecuta el script de sincronización

    node sync-themes.js
    

    Este script sincroniza automáticamente:

    • options.jsbackground.js (copia exacta)
    • options.jsuserscript (URLs transformadas a GitHub)
  3. Actualiza content.js (si es tema nuevo)

    const AVAILABLE_THEMES = [
        'default', 'dark', 'mi-tema', // ← Añade aquí
    ];
    
  4. Prueba la extensión

    • Recarga la extensión en el navegador
    • Verifica el nuevo tema en opciones
    • Prueba el auto-tema

Estructura de un Tema

'nombre-tema': {
    name: 'Nombre Mostrado',       // Opcional
    images: {
        background: 'URL',          // Fondo principal
        navbarBg: 'URL',           // Fondo navbar
        calendarBg: 'URL',         // Fondo calendario
        tarjeta: 'URL',            // Imagen tarjetas
        iconoPDF: 'URL',           // Icono PDFs
        logo: 'URL',               // Logo personalizado
        userProfile: 'URL',        // Foto perfil
        screamer1: 'URL'           // Easter egg
    },
    fontFamily: 'Fuente',          // '' = default
    navbarColor: '#HEXCOLOR',
    features: {
        enableBackgroundImages: true,
        enableImageReplacements: true,
        enableHideElements: true,
        enableCustomParagraph: true,
        enableCustomFont: true,
        enableOneko: true
    }
}

Contribuir

¿Tienes ideas, bugs o mejoras? ¡Contribuye camarada!

  1. Reporta issues: GitHub Issues
  2. Pull requests: Siempre bienvenidos
  3. Nuevos temas: Sigue el flujo de trabajo de desarrollo

🐛 Solución de Problemas

Extensión

ProblemaSolución
El tema no se aplicaRecarga la extensión en chrome://extensions
Auto-tema no funcionaEjecuta node sync-themes.js y recarga
Nuevo tema no apareceAñádelo a AVAILABLE_THEMES en content.js

Userscript

ProblemaSolución
No se activaVerifica que Tampermonkey esté habilitado
Cambios no se aplicanRecarga con Ctrl+F5
Oneko no apareceActívalo desde el menú de Tampermonkey
Temas desactualizadosEjecuta node sync-themes.js

Licencia

Este proyecto está bajo la licencia Mozilla Public License 2.0 (ver LICENSE).

Activos de terceros: Algunos recursos visuales (logos, iconos) pueden ser propiedad de terceros. Consulta:


Hecho con amor desde la EUPLA
Descargar última versión