Skip to main content

Interactive GRUB theme manager for Linux - Browse, install, and manage GRUB boot themes

Project description

PROJECT GRUB - GRUB Theme Manager

Developer: roshhellwett
Copyright: Zenith Open Source Projects


The ultimate tool to customize your Linux boot loader.


๐ŸŒŸ Overview

ProjectGRUB is an interactive CLI tool that helps you browse, install, and manage GRUB boot themes on Linux. Instead of manually copying files and editing configurations, just run the menu and pick your theme.

โœจ Features

  • ๐ŸŽจ Browse Themes - View all available GRUB themes with details
  • ๐Ÿš€ Quick Install - Install a theme in 3 clicks
  • โš™๏ธ Advanced Install - Choose resolution (1080p, 2K, 4K) and options
  • ๐Ÿ” Theme Validation - Verify themes before installing
  • ๐Ÿ”ง System Diagnostics - Check GRUB health and compatibility
  • ๐Ÿ“ฆ Auto-Discovery - New themes appear automatically in the menu
  • ๐Ÿ›ก๏ธ Safe Operations - Backup before changes, rollback on failure
  • ๐Ÿ’พ Pre-flight Checks - Validates system readiness before any operation

๐Ÿš€ Quick Start

Step 1: Install Python

If you don't have Python, download it here: https://www.python.org/downloads/

Step 2: Install ProjectGRUB

pip install projectgrub

Step 3: Run the Interactive Menu

python -m projectgrub start

That's it! The tool will guide you through everything.


๐Ÿ“‹ Installation Options

Option 1: Install via pip (Recommended)

pip install projectgrub
projectgrub

Option 2: Run from local clone

git clone https://github.com/zenithopensourceprojects/projectgrub.git
cd projectgrub
pip install -e .
projectgrub

Option 3: Run without installing

git clone https://github.com/zenithopensourceprojects/projectgrub.git
cd projectgrub
pip install -e .
python -m projectgrub start

๐ŸŽฏ Menu Options

Option Description
1. Browse Themes View all available GRUB themes with previews
2. Quick Install Install a theme with recommended settings
3. Advanced Install Choose resolution (1080p/2K/4K) and custom options
4. Preview Theme View detailed theme information
5. Uninstall Theme Remove current GRUB theme
6. System Diagnostics Check GRUB health and compatibility
7. Theme Validation Validate a theme before install
8. Contribute Guide Learn how to add new themes
9. Refresh Themes Reload themes from disk
10. Help Documentation and tips
0. Exit Exit the application

๐Ÿ›ก๏ธ Safety Features

Pre-flight Checks

Before any operation, ProjectGRUB validates:

  • โœ… Running on Linux
  • โœ… Root privileges available
  • โœ… GRUB installed
  • โœ… GRUB directory accessible
  • โœ… Write permissions available
  • โœ… Sufficient disk space

Rollback on Failure

If installation fails:

  1. GRUB config is restored from backup
  2. Partially copied files are removed
  3. User receives clear error message with suggestions

๐ŸŽจ Available Themes

The tool automatically discovers themes from the themes/ folder. Current themes include:

Theme Author Description
Vimix Vimix Clean, modern flat-design
Xenlism Xenlism Minimal and elegant
Tela Tela Minimalist aesthetics
Dark Matter VandalByte Dark and sleek
DedSec VandalByte Cyberpunk hacker style

๐Ÿค Contributing Themes

Want to add your own theme? Easy!

Step 1: Create Theme Folder

themes/your-theme-name/

Step 2: Add Resolution Subfolders

themes/your-theme-name/
โ”œโ”€โ”€ 1080p/
โ”‚   โ”œโ”€โ”€ theme.txt
โ”‚   โ”œโ”€โ”€ background.png
โ”‚   โ””โ”€โ”€ ... assets
โ”œโ”€โ”€ 2k/
โ”‚   โ””โ”€โ”€ ...
โ””โ”€โ”€ 4k/
    โ””โ”€โ”€ ...

Step 3: Create theme.txt

title-text: ""
desktop-image: "background.png"
desktop-color: "#000000"
terminal-font: "Terminus Regular 14"
terminal-box: "terminal_box_*.png"

+ boot_menu {
  left = 30%
  top = 30%
  width = 45%
  height = 60%
  item_font = "Unifont Regular 16"
  item_color = "#cccccc"
  selected_item_color = "#ffffff"
  selected_item_pixmap_style = "select_*.png"
}

Step 4: Add metadata.json (optional)

{
  "name": "Your Theme Name",
  "author": "Your Name",
  "description": "A beautiful GRUB theme",
  "version": "1.0.0",
  "license": "MIT"
}

Step 5: Submit

  1. Fork the repository
  2. Add your theme to the themes/ folder
  3. Create a pull request

Your theme will automatically appear in the menu!


๐Ÿ”ง CLI Commands

# Interactive menu
python -m projectgrub start

# List all themes
python -m projectgrub list

# Show theme info
python -m projectgrub info themename

# Run system checks
python -m projectgrub check

๐Ÿ“‹ Requirements

  • Linux operating system
  • Python 3.10 or higher
  • GRUB bootloader installed
  • Root/sudo privileges
  • At least 50MB free space in /boot

Supported Distributions

  • Ubuntu / Debian
  • Arch / Manjaro
  • Fedora / RHEL
  • openSUSE
  • And other Linux distributions with GRUB

๐Ÿ› Troubleshooting

"Root privileges required"

Run with sudo:

sudo python -m projectgrub start

"GRUB not found"

Make sure GRUB is installed and /boot is mounted.

"Theme not working after install"

  1. Reboot your system
  2. Check /etc/default/grub for GRUB_THEME line
  3. Run sudo grub-mkconfig manually

๐Ÿ“„ License

MIT License - See LICENSE file for details.


๐Ÿ™ Credits


ยฉ 2026 Zenith Open Source Projects. All Rights Reserved.
Zenith is an Open Source Project Idea by @roshhellwett

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

projectgrub-1.0.0.tar.gz (28.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

projectgrub-1.0.0-py3-none-any.whl (27.3 kB view details)

Uploaded Python 3

File details

Details for the file projectgrub-1.0.0.tar.gz.

File metadata

  • Download URL: projectgrub-1.0.0.tar.gz
  • Upload date:
  • Size: 28.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for projectgrub-1.0.0.tar.gz
Algorithm Hash digest
SHA256 7e3d18e2440ffe1adb3d2923347d2e28ac599eb1c0ed053143ac755008212e33
MD5 974238de37d379f76e53115a9a9a627a
BLAKE2b-256 0529abe5b7ee1305453545b2bcaf14048f08dfd1e9ab360868c92e92685a6a0b

See more details on using hashes here.

File details

Details for the file projectgrub-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: projectgrub-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 27.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for projectgrub-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a1129120540cdfb4adce37e0f660099eb0ff3492e6edaa7fae13a8b8a7d0993b
MD5 ebc3b6d2419b0ada2ceb9007d2fba95c
BLAKE2b-256 c3ce47a0609c278114acf3a875522422dc83cc0f3d48aadb4b173ccccc8954f7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page