Skip to content

iemafzalhassan/GrubBootladerThemes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GRUB Bootloader Theme Manager

License: MIT Version

A comprehensive collection of beautiful GRUB bootloader themes with an easy-to-use installer and theme management system.

✨ Features

  • 🎨 11+ Curated Themes - Beautiful, professionally designed bootloader themes
  • πŸ”„ Easy Installation/Uninstallation - Simple theme management
  • πŸ–ΌοΈ Auto Theme Detection - Automatically finds all available themes
  • πŸ”™ Rollback Support - Restore previous GRUB configurations
  • πŸ“‹ Theme Management - List, install, and uninstall themes easily
  • πŸ§ͺ Comprehensive Testing - Automated test suite
  • πŸ“¦ Multi-Distribution Support - Works on Debian, Ubuntu, Fedora, openSUSE
  • πŸ“ Logging - Detailed installation logs
  • πŸ›‘οΈ Error Handling - Robust error checking and validation
  • 🎯 Interactive Menu - User-friendly menu system

🎨 Available Themes

  • CyberEXS - Minimalist cyberpunk design
  • Cyberpunk - Yellow/black color scheme with scrollbar support
  • CyberRe - Red/cyan color scheme with progress bar
  • CyberSynchro - Multiple UI elements (boot menu, sliders, password fields)
  • fallout - Green terminal aesthetic (Fallout-inspired)
  • grub_linea - Linea icon set integration
  • mr-robot - Mr. Robot-inspired with multilingual support
  • shodan - System Shock-inspired theme
  • vimix - Vimix desktop theme adaptation
  • virtual_future - Futuristic design

πŸ“‹ Requirements

  • Linux system with GRUB bootloader
  • Root/sudo access
  • Bash shell
  • Basic dependencies: sed, grep, cp, mkdir, find

Optional:

  • figlet (for enhanced banner display)
  • shellcheck (for code linting)

πŸš€ Installation

Quick Install

# Clone the repository
git clone https://github.com/iemafzalhassan/GrubBootladerThemes.git
cd GrubBootladerThemes

# Run the installer
sudo ./install.sh

Interactive Menu Mode

# Launch the interactive menu
sudo ./install.sh --menu

The menu provides options to:

  1. Install Theme
  2. Uninstall Theme
  3. List Installed Themes
  4. Restore Default GRUB
  5. Rollback GRUB Configuration
  6. Install grub-customizer
  7. Show Version
  8. Quit

Command Line Options

# Show version information
sudo ./install.sh --version

# Show help message
sudo ./install.sh --help

# Run in legacy installation mode (default)
sudo ./install.sh

πŸ“– Usage

Installing a Theme

  1. Run the installer:

    sudo ./install.sh
  2. Select a theme from the list

  3. The script will:

    • Validate the theme
    • Create a backup of your GRUB configuration
    • Install the theme files
    • Update GRUB configuration
    • Update GRUB bootloader
  4. Reboot to see your new theme!

Uninstalling a Theme

Using the interactive menu:

sudo ./install.sh --menu
# Select option 2: Uninstall Theme

Listing Installed Themes

sudo ./install.sh --menu
# Select option 3: List Installed Themes

Restoring Default GRUB

sudo ./install.sh --menu
# Select option 4: Restore Default GRUB

Rolling Back Configuration

If something goes wrong, you can rollback to a previous GRUB configuration:

sudo ./install.sh --menu
# Select option 5: Rollback GRUB Configuration

πŸ”§ Advanced Usage

Installing grub-customizer

GRUB Customizer is a graphical tool for customizing GRUB. You can install it optionally:

sudo ./install.sh --menu
# Select option 6: Install grub-customizer

Or it will be offered during the standard installation process.

Manual Theme Installation

If you prefer manual installation:

  1. Copy theme files to /boot/grub/themes/theme-name/
  2. Edit /etc/default/grub:
    GRUB_THEME="/boot/grub/themes/theme-name/theme.txt"
  3. Update GRUB:
    sudo update-grub

πŸ“ Project Structure

GrubBootladerThemes/
β”œβ”€β”€ install.sh              # Main installation script
β”œβ”€β”€ run_linter.sh           # Linter runner
β”œβ”€β”€ run_tests.sh            # Test runner
β”œβ”€β”€ README.md               # This file
β”œβ”€β”€ CONTRIBUTING.md         # Contribution guidelines
β”œβ”€β”€ CHANGELOG.md            # Version history
β”œβ”€β”€ LICENSE                 # MIT License
β”œβ”€β”€ .gitignore              # Git ignore rules
└── themes/                 # Theme collection
    β”œβ”€β”€ CyberEXS/
    β”œβ”€β”€ Cyberpunk/
    β”œβ”€β”€ CyberRe/
    └── ...

πŸ§ͺ Testing

Run the test suite:

./run_tests.sh

Run the linter:

./run_linter.sh

πŸ“ Logging

Installation logs are saved to:

/var/log/grub-theme-installer.log

View recent logs:

sudo tail -f /var/log/grub-theme-installer.log

πŸ› οΈ Troubleshooting

Theme Not Appearing After Installation

  1. Verify GRUB configuration:

    grep GRUB_THEME /etc/default/grub
  2. Check if theme files exist:

    ls -la /boot/grub/themes/
  3. Update GRUB manually:

    sudo update-grub
  4. Check logs:

    sudo cat /var/log/grub-theme-installer.log

Rollback to Previous Configuration

Use the rollback feature:

sudo ./install.sh --menu
# Select option 5: Rollback GRUB Configuration

Or manually restore from backup:

sudo cp /etc/default/grub.bak.YYYYMMDD_HHMMSS /etc/default/grub
sudo update-grub

Permission Errors

Ensure you're running with root privileges:

sudo ./install.sh

🀝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Adding a New Theme

  1. Create a new directory in themes/ with your theme name
  2. Include required files:
    • theme.txt - GRUB theme configuration
    • background.png or background.jpg - Background image
    • Font files (.pf2 format)
  3. Test your theme
  4. Submit a pull request

See CONTRIBUTING.md for detailed instructions.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Original contributors and theme creators
  • GRUB development team
  • All theme designers and contributors

πŸ“ž Support

🎯 Roadmap

  • Theme preview functionality
  • GUI interface option
  • Theme package format support
  • Automated theme testing
  • CI/CD pipeline improvements
  • More themes

πŸ“Έ Theme Previews

Theme Preview 1 Theme Preview 2 Theme Preview 3 Theme Preview 4 Theme Preview 5


Made with ❀️ by Md. Afzal Hassan Ehsani

About

Custom themes for grub bootloader.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages