directhex-grub-themes 00000001 release announcement.

There’s been a fair deal of talk on the intertubes lately about prettifying the boot process. The first I saw was a post from Lasse Havelund regarding a proposal for Ubuntu Lucid, and the second was regarding a forked version of GRUB2 called BURG, which adds some theming abilities. A tiny bit of research revealed that despite the existence of BURG, the regular upstream GRUB2 project already has graphical theme support, courtesy of a Google Summer of Code project by Colin Bennett (albeit with a few less features at time of writing). Since Lasse had gone to the hard work of actual design, I decided to try my hand at chopping his design up into a usable GRUB2 theme, and the result can be seen here.

I ended up speaking with the upstream GRUB2 team (which has certainly lead to a strange alliance in one case) about Colin’s GSOC themes, and as it turns out, the main reason there’s no theme supplied with GRUB2 is that Colin’s themes use non-Free elements (proprietary fonts like Helvetica are used heavily). Since I had learnt the theme format to a basic degree in doing my Ubuntu theme, I proposed making a genuinely Free theme – starting with a Debian theme, and moving on to a generic “GRUB2” theme afterwards.

As I went along, I found a handful of bugs and feature oddities, which have almost all been fixed with incredible turnaround by Vladimir Serbinenko, the current maintainer of the “gfxmenu” code (there remain some questions regarding RTL support in themes, and how to gracefully deal with different aspect ratios) – and I want to extend my thanks to him for his help. However, at this point in time, I’m pleased to announce a theme I’d consider ready for public consumption.

It’s obviously not perfect, and it uses the old visual style from Debian Lenny, but it’s a fully Free starting point, which hopefully can be deconstructed by others seeking to make their own themes. It ought to scale fully to any 4:3 resolution. And it may explode and eat your disk on any version of GRUB2 Experimental other than r1499. Generally, the README is a good starting point.

Oh yes, an URL. Try http://retro.apebox.org/grubthemes/

I’ve been speaking with some folks on deviantART regarding using their Debian-themed wallpaper in future releases of my themes package, but for now, this should be enough for gfxmenu to get a little more exposure and a little more testing. And, hopefully, shift artist focus back from the theme-incompatible BURG fork to the real GRUB2 project.

17 Responses to “directhex-grub-themes 00000001 release announcement.”

  1. First of all, I want to congratulate and thank you for the time and effort you have put in to scratch this particular itch. Following all posters on Planet Ubuntu, I was impressed by the initial concept art and idea. Now if I can make a comment :). I think the original theme was better for one (and only one) reason, I know you are going to know what I am going to write… icons and layout. The pictographic representation of the operating systems is simpler and requires absolutely no thought or confusion. Select the little icon and you are away. I am not sure this is even possible, but that little modification/concept not only makes the eye candy on boot more pleasing, it also gives a more polished look to Linux by association.

    I am not ‘jumping down your throat’ or anything, I just wanted to give a little feedback and let you know there is at least one user who appreciates all the effort. Even if the default moves no further than the work you have already done, it is 500% better than what users are currently seeing.

  2. @Mark Coleman, phcoder started looking at the question of horizontal alignment today, and I gave him some of my thoughts on it (including the ability to decouple text and icons from the boot_menu element). So there’s definitely scope for improvement – but this is real gushing-edge stuff.

    GRUB2 is moving a little slower than BURG on these topics, where BURG already supports what you suggest, as it cares somewhat more about regressions in other abilities.

    I have rEFIt on my Mac in the office, so I *DO* know what you mean, though.

  3. Thank you for taking the time and effort to work on this and helping improve this aspect of GRUB2. But, looking at the graphical theme in the screenshot above, i must say that your efforts would be far more useful if you were working with a designer. I don’t want to be mean and i appreciate your efforts, but from a graphic design standpoint this is quite bad.

    Obvious defects are:
    – A big, black drop shadow that is not subtle in any way. Remember: if you notice the drop shadow, then it’s a BAD drop shadow. Drop shadow are meant to represent volume and depth. They are NOT decorative. If there is no depth to represent, you don’t want a shadow.
    – Big rounded corners. Big, unnecessary rounded corners are almost as evil as drop shadows. 😉
    – The Debian logo has sharp pixel edges.
    – The scroller (if this tall white line is a scroller) is hard to recognize as such. It lacks symbols such as (subtle) arrows and something that delimits the scrollable space.
    – Some of the spacing is off, especially the lack of space between the icons and the text, and between the text and the scroller.

    Finally, i am not sure a generic Free graphical theme for GRUB2 should sport Debian, Ubuntu, Linux or Whatever branding. Casual users testing a Linux distribution alongside Windows may not want their computer “home screen” taken over by Linux or the particular distribution they installed. I would advocate for something quite neutral.

    Of course this shouldn’t stop distributions from providing themes with their own brand.

  4. @Florent V., oh, sure. I’m no artist. But if nothing else, my stress-testing has helped to find a good number of bugs – remember, it’s 2010 now yet this is still the first fully working theme with fully Free licensing.

  5. @directhex, as i said i value your work. Regarding the graphic quality, maybe getting a GRUB2 release out of the door with bundled graphic themes will motivate artists or artistically-enclined coders to build on this work and improve the look and feel.

    Are the current theming capabilities of GRUB2 documented? A not-too-technical brief telling designers what they can do and what they can’t could be a good starting point to try to get graphic contributions.

  6. @Florent V., http://grub.gibibit.com/Theme_format is the most up-to-date resource, but it doesn’t cover features that Vladimir implemented during development of my theme – the key differences being individual “left”, “width”, “top” and “height” values which all accept numbers of the form a+b% (e.g. 78%-80) for scalable alignment

  7. I like it, it’s definitely more friendly then what currently is being used (ie. nothing). Regardless I think for 10.04 GRUB needs a theme.

  8. Hey, good work. Have you seen BURG?
    http://www.omgubuntu.co.uk/2010/01/make-grub-themes-beautiful-look-nicer.html

    Maybe you can use it as a base for your work.

  9. Didn’t read the start of the note :p. Sorry

  10. Nice effort on this, I followed some of your discussion on the irc channel for grub.

  11. It would be good if you looked at creating syslinux themes too. http://blog.daniel-baumann.ch/2009/12/16#20091216_syslinux-themes-debian

    I refuse to use Grub anymore thanks to its terrific bloat.

  12. @Kai Hendry, could you elaborate what kind of bloat do you mean? GRUB is organised into modules and you can delete the modules you don’t need

  13. @phcoder,

    138k SLOC for grub2
    ~1k SLOC extlinux

    Grub is practically an OS now!

    I’d rather not mess about with modules. Thanks,

  14. @Kai Hendry, GRUB supports a gazillon of features (L10N, LVM, RAID, multiple filesystems…) in a gazillon of different CPUs (i386, powerpc, sparc, mips…), firmware types (BIOS, IEEE1275, coreboot…) and kernels (Multiboot kernels, Linux, kernels of *BSD…). As a result, the codebase is extensive, but rest assured that only a minimal part of it is executed during boot, or even loaded in memory, in your typical use case.

    extlinux is a tool for one platform (i386 with BIOS) to load one kernel (Linux) using a legacy 16-bit boot protocol on one filesystem using hardcoded blocklist kludge. It serves a very specific purpose and overall is a very different program. I think you’re comparing apples and oranges.

  15. Thank you Jo!

    I’ll see about getting this into Debian experimental ASAP. This will help getting the gfxmenu code tested (yeah, please everyone who reads this, go ahead and try it ;-)) so that we can merge it into Bazaar trunk.

    It’s a pleasure working with you 😉

  16. […] Motyw stworzony przez Jo Shields’a to nie jedyny dostępny motyw graficzny. Tematów jest już kilka, a dostępne są na oficjalnej stronie projektu GNU GRUB Graphical Menu. […]

  17. can you guys please get current docs for this? how can we write themes when we can’t figure out how it’s fscking supposed to work? all your work is worthless is it’s not documented :(.

Leave a Reply