Grub Theme Creator - create grub themes easily in seconds

I hope it is a useful tool for grub theme developers/artists and every grub2 user.

Please, welcome...

A contest should begin for the artists! :star2:

Or just use it for your system Grub menu :laughing:

Here is a demo video for

GTC - Style Acropolis - Pretty Grub Project


Easily in seconds after reading the manual :slight_smile: :wink:

Baking time does not include prep :wink:

GTC-Tux :)


Deepin Wallpaper and more by SGS


How about a PKGBUILD:

EDIT: Removed old PKGBUILD


Here is a new theme that I try to make as "menu style" and eventually GTC will create it automatically, converting given images for several resolutions.

GTC Menu Style: Akropolis

My Mint has numerous entries!... I am only keeping it to test GTC/PrettyGrub/horizontal-grub


Proposal :wink:

1 Like

The first template is ready. It will be uploaded shortly.

But... here is an introductory video.

Grub Theme Creator - Style Acropolis - Pretty Grub Project

I hope it will be appreciated by my "partner in grub crime" @gohlip :stuck_out_tongue_winking_eye:


Well done, prepare a short documentation so people can ........ (your favourite phrase) RTFM!! :laughing:

Have you read what's already up?
Any questions?


I gracefully appreciate the contribution!! :heart_eyes:
I already used it for my system and uploaded to the repo.
I just don't know if it's proper, as I assumed, to upload/change PKGBUILD after each release, so it remains outside of the new version.
Then what happens on a new version? Is the old file included?
There must be a trick.. :confused: :laughing:

And now I'll wait for someone to offer an AUR addition :laughing:!!..


The video should be placed in the first post and on the github page as well. :slight_smile:

1 Like

Yes, you just update the pkgver and generate new checksums if all you need to do is a version bump. Looks like you took care of that.

I'm not sure what you mean by that.

It's not quite proper as it is. Instead of pulling in the horizontal-grub binary as a source file, it technically should be a separate package and listed as a dependency. When I have time, perhaps I'll do that and add it to my growing list of AUR packages I maintain.

Tip: Your versioning should include a leading 0, i.e.; 0.0.2.

I think I figured that out. I was confused (git and versions and tags :scream_cat:).
GitHub auto-creates a package for download per version (tag in my case). Since I use tagging to version, the PKGBUILD will not be in that file (that was what confuses me, because it will be the previous version). I don't have it very clear, but I guess it's not a problem.

I will read about that (I 've read something but need to do it again). Is this coming from AUR rules or just the "proper versioning" by common followed standards?

How about a git version then? Maybe that would be easier.

pkgdesc="Automates the creation of a grub2 theme"
depends=('grub' 'imagemagick')
pkgver() {
	cd "$srcdir/${pkgname%-git}"
	printf "%s" "$(git describe --long --tags | sed 's/^v//;s/([^-]*-g)/r/;s/-/./g')"

package() {
	cd "$srcdir/${pkgname%-git}"
	install -d $pkgdir/usr/share/prettygrub
	cp -r templates  $pkgdir/usr/share/prettygrub/
	install -Dm755 "${pkgname%-git}" "$pkgdir/usr/bin/${pkgname%-git}"
	install -Dm755 prettygrub $pkgdir/usr/bin/prettygrub
	install -Dm755 $srcdir/horizontal-grub $pkgdir/usr/bin/horizontal-grub

I'm not very good with sed and regex, so I'm not sure how to remove the v from the pkgver.
EDIT: I figured it out thanks to @Lolix's post here.

It's just the way things are done. :stuck_out_tongue_winking_eye: I'm not sure where the standard comes from, but you'll notice all Arch package versions are formatted like that.

1 Like

I found the article that states the "standards".

I appreciate that! Though, currently I am already developing a major feature set, that will anyway jump a version. I will prefer to stay with the versions by tags, to keep things clear for now.
Maybe later a git version would make sense, when mainly minor changes are introduced.
And I still haven't managed to understand and use branches efficiently. :cry:
Thanks much!!

That's how the pkgver is generated in a VCS PKGBUILD (if tags exist). That's why I thought it might be easier.

AFAIK a git package takes the latest commit (master?), which is not always "releasable".
I would like to set releases by tags, so (when/IF the utility comes "famous") no un-necessary bug reports arise :rofl:.

Were you going to make a release version of horizontal-grub? Otherwise I can make a git version. All ready for an AUR release other than that.


This was so needed, manually themming grub is a pain in the ass. Many thanks :crossed_fingers:

1 Like