Skip to content

Latest commit

Β 

History

99 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GRUB Settings βš™οΈ

Version License Platform GTK

GRUB Settings Icon

A modern, user-friendly, and polite GRUB customizer for Linux

Configure your GRUB bootloader without touching config files

πŸ“¦ Download β€’ ✨ Features β€’ πŸ“– Documentation β€’ 🀝 Contributing


πŸ†• Latest Changes

v0.1.4

  • No changes detected since last tag.

v0.1.3

  • Initial release or no tags found.

v0.1.2

  • Merge pull request #8 from bingoweb/refactor-polite-auth-dialog-7708239785296805798

πŸ“Έ Screenshots

Timing Settings Appearance
Timing Appearance
System Settings Advanced
System Advanced

✨ Features

🎨 Modern Interface

  • GTK4 + LibAdwaita design with dark mode support
  • Clean, intuitive navigation sidebar
  • Responsive layout for all screen sizes

⏱️ Timing Settings

Feature Description
Menu Timeout Set how long GRUB menu appears (0-30 seconds)
Visibility Style Show Menu / Hidden (Shift key) / Countdown only
Remember Selection Auto-select last booted OS

πŸ–ΌοΈ Appearance

Feature Description
Background Image Set custom PNG/JPEG/TGA background
Screen Resolution Configure GRUB display resolution
Live Preview See your background before applying

πŸ’» System Settings

Feature Description
Default OS Choose which OS boots automatically
Windows Detection Manually add Windows if OS-Prober fails
OS Prober Toggle automatic OS detection
Submenus Group old kernels in submenu

πŸ”§ Advanced Settings

Feature Description
Quiet Boot Hide technical boot messages
Splash Screen Plymouth boot animation toggle
Recovery Mode Show/hide recovery options
Kernel Parameters Custom kernel command line

πŸ” Polite Authentication

  • No root startup - App starts normally without password
  • On-demand sudo - Password only when applying changes
  • Session caching - No repeated prompts
  • Universal dialog - Works on GNOME, KDE, XFCE, and tiling WMs

🌐 Internationalization

  • πŸ‡¬πŸ‡§ English
  • πŸ‡ΉπŸ‡· TΓΌrkΓ§e (Turkish)
  • More languages coming soon!

🎨 Theme Support

  • System - Follow system theme
  • Light - Force light mode
  • Dark - Force dark mode

πŸ“¦ Installation

Debian / Ubuntu (.deb Package) ⭐ Recommended

The easiest way - dependencies are installed automatically!

# Download the package
wget https://github.com/bingoweb/grub-settings/releases/latest/download/grub-settings_0.1.4_all.deb

# Install with dependencies
sudo apt install ./grub-settings_0.1.4_all.deb

# Run from menu or terminal
grub-settings

Flatpak (Coming Soon)

flatpak install flathub io.github.taylan.grubsettings

Flathub submission is pending review.

From Source

# Clone
git clone https://github.com/bingoweb/grub-settings.git
cd grub-settings

# Run
python3 grub_settings.py

Dependencies:

# Debian/Ubuntu
sudo apt install python3-gi gir1.2-gtk-4.0 gir1.2-adw-1

# Fedora
sudo dnf install python3-gobject gtk4 libadwaita

# Arch Linux
sudo pacman -S python-gobject gtk4 libadwaita

πŸ“– Documentation

How It Works

GRUB Settings modifies /etc/default/grub and runs update-grub to apply changes. It provides a safe, visual way to configure:

GRUB_TIMEOUT=5
GRUB_TIMEOUT_STYLE=menu
GRUB_DEFAULT=0
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_BACKGROUND="/path/to/image.png"
GRUB_GFXMODE=1920x1080

Supported Distributions

Distribution Status Notes
Ubuntu 22.04+ βœ… Tested Full support
Debian 12+ βœ… Tested Full support
Fedora 38+ βœ… Tested Full support
Arch Linux βœ… Tested Full support
Linux Mint βœ… Tested Ubuntu-based
Pop!_OS βœ… Tested Ubuntu-based
openSUSE ⚠️ Untested Should work

FAQ

❓ Why does the app need sudo?

GRUB configuration is stored in /etc/default/grub which requires root access. The app only asks for password when you click "Apply Changes".

❓ Will this break my system?

No. The app creates a backup before making changes. If something goes wrong, you can restore from /etc/default/grub.backup.

❓ Windows not detected?
  1. Enable "OS Prober" in System Settings
  2. If still not detected, use "Add Windows Manually" option
  3. Click "Apply Changes" and reboot
❓ How do I reset to defaults?
sudo cp /etc/default/grub.backup /etc/default/grub
sudo update-grub
❓ Can I add more languages?

Yes! Create a new JSON file in locales/ folder and add it to languages.json. See existing translations as reference.


πŸ› οΈ Development

Project Structure

grub-settings/
β”œβ”€β”€ grub_settings.py      # Main application
β”œβ”€β”€ assets/               # Icons and images
β”œβ”€β”€ locales/              # Translation files
β”‚   β”œβ”€β”€ languages.json    # Language registry
β”‚   β”œβ”€β”€ en.json           # English
β”‚   └── tr.json           # Turkish
β”œβ”€β”€ flatpak/              # Flatpak packaging
β”œβ”€β”€ packaging/            # .deb packaging
└── screenshots/          # App screenshots

Building Packages

# Build .deb package
dpkg-deb --build packaging/deb packaging/grub-settings_0.1.4_all.deb

# Test Flatpak
flatpak-builder --user --install build-dir flatpak/io.github.taylan.grubsettings.yml

Automatic Releases

This repo ships with a Git hook that runs release_manager.py after each commit to bump the patch version and keep the README changelog up to date.

# Enable repo hooks
git config core.hooksPath .githooks

To skip the auto-release for a single commit, set an environment variable:

GRUB_SETTINGS_AUTO_RELEASE=0 git commit -m "docs: update readme"

🀝 Contributing

Contributions are welcome! Here's how you can help:

  1. πŸ› Report Bugs - Open an issue
  2. 🌐 Add Translations - Help translate to your language
  3. πŸ’» Submit PRs - Fix bugs or add features
  4. ⭐ Star the repo - Show your support!

πŸ“„ License

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


πŸ‘¨β€πŸ’» Author

Taylan Soylu

GitHub Email


Made with ❀️ for the Linux community

If you find this useful, please consider giving it a ⭐

About

A modern and polite GRUB customizer for Linux

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages