Horizontal Grub - bash script

If you are multi-booting, you may find this script interesting.
It creates a grub.cfg configuration, modifying the standard one, generated by update-grub, in a way that makes a fake horizontal menu experience. At least, that was the "plan" :smile:.
There is an option to save locally, or directly replace system file.
It is best enjoyed, or really uncover the magic, if used in combination with a theme like prettygrub

Please, check out and share your impressions. (only the positive :stuck_out_tongue:)

  • I need confirmation that it can successfully find and handle non-Linux entries

Current version: 0.1.2
There is an AUR package, maintained by @Yochanan


Another bash script is added to the project.
I hope it is a useful tool for grub theme developers/artists and every grub2 user.

Please, welcome...

1 Like

Congrats. Any screen shots for horizontal grubs?

So you need evidence?
Baking some in the next days. The difficult was the engine.
And I'm no artist...
I still wait for your grub.cfg to include custom menus.:wink:

No, as said I'm just not picky on theming, grub, splash, hidden grubs or anything nice that do nothing else or worse do something not nice with it.
I just like to see how it looks like, that's all.
So show us when that's done.
What's the hassle?

No hassle. Just, there is no hurry or priority when

You are not a customer :rofl:

What looks like depends on the artist and the images used. The possibilities are endless. It just needs fantasy, taste and talent in creating images.
But I am no artist


Each distro has a separate page with its options all together and distro icon at top.


Yucks! :smiley: We're all entitled to what we like otherwise ugly girls and boys will remain unmarried. :rofl:
But I'm still looking forward to the 'horizontal' grub that you're working on. Hope you get it working.


I thought you speak and understand many languages and you use to RTFM. My mistake, sorry...

It is ready for ages...
Keep looking, you are getting closer!


This phrase can also imply some humility and modesty, as like when people say you are proficient, the reply is 哪里哪里 meaning 'not at all'..
So back to the Nixon - Mao meeting, when Nixon mentions that Mao's wife is pretty, the interpreter for Mao told Nixon, "Where? Where?"

So, to you..."Where? Where?"

1 Like

@AgentS I cannot get it to work.

curl -o horizontal-grub https://raw.githubusercontent.com/petsam/horizontal-grub/master/horizontal-grub
chmod +x horizontal-grub
sudo cp horizontal-grub /usr/local/bin/

In terminal,


bash: horizontal-grub: command not found

[EDIT] - can you provide your grub.cfg for this? You don't have to provide menu entries for your grub.cfg.
Just everything else. I can modify yours so that it can apply to mine.
ps: it should have a
set theme=($root)/boot/grub/themes/prettygrub/theme.txt
right? Is the theme.txt also modified or remain the same to the original?
If modified, provide the theme.txt as well.


check your $PATH. It should include /usr/local/bin, if you are on standard Manjaro/Arch :wink:.

What I don't get from your request is I would n't expect it from a grub expert.
If you just want to check how hor-grb works:

  • Download prettygrub theme and set as active grub theme
  • Enable os-prober in /etc/default/grub
  • Backup your current grub.cfg
sudo mv /boot/grub/grub.cfg /boot/grub/grub.cfg.bak
  • Create a new grub.cfg
sudo update-grub
  • Run horizontal-grub at the path it exists
sudo horizontal-grub
  • Reboot

Another way is to install grub-theme-creator and follow the provided instructions.

Or wait until I make a demo video.
Curiosity killed the cat?

Cat have 9 lives, remember? :slightly_smiling_face:

Right, as you know I use my own grub. And I've put in your prettygrub in it and it works. And I've shown the screen shots somewhere.

As for horizontal-grub, it is required that you put the file in /usr/local/bin and do the command 'horizontal-grub' after making it executable. That I understand. I also understand that it will modify grub.cfg while using the 'prettygrub' theme. Correct so far?

Now my question to you is

  1. Does that modify 'prettygrub' ?
    If it does, what part of theme.txt does it modify?
  2. I understand it modifies grub.cfg, so I ask if you can provide your grub.cfg so I can modify mine (with adjustments to my case).

As explained, I use my own grub and I can easily do this as I had with your (non-horizontal-grub) prettygrub. Of course I could try with doing the whole thing at the OS (instead at my own grub) but since I have this pretty grub at my own grub, it is easier (and easily convertible back to any theme :smiley:) to do it at my grub.

Hope this is now clear.

ps: as you also already know, it is not critical to me that I try this out :slightly_smiling_face: but to test out and give support to my buddy's 'venture'.

ps: my feedback as follows and hope it helps and not to criticize :slight_smile:

o The 'box' at the horizontal-grub menu selection (the dark olive green worn-out military ammunition box) is ugly (to me). At pretty theme, we can change it to using something more 'pretty'.

o And it is not centred but that depends on the resolution and monitor size used. Suggest we fix it at 1024x768.

o The heading at Linux Mint shows 'Manjaro' and the heading at Manjaro shows 'Linux Mint'.
(The red line at your screen shots.)

I think you have mixed/confused names and you are contributing to the wrong topic.
Prettygrub is a Theme .
Horizontal-grub is a script that changes grub.cfg.

The project PrettyGrub is now consisted from

  • Grub Theme Creator aka GTC (script)
  • horizontal-grub (script)
  • GTC compatible templates (folder with settings and images)


  • GTC is reading settings, copies images (some of them converted to a suitable format) and settings in a folder which consists a grub theme.
  • If the user wants (parameters) saves the theme at grub themes and enables the theme and runs update-grub.
  • If the theme is type horizontal, horizontal-grub is called after update-grub

I can show you a screenshot of my currently developed theme, which I plan to make as a "menu-style", modifying images as required. (in a minute check GTC topic)
You may know (of course) at grub menu, some image elements are auto stretched, some not, so grub resolution is critical.
Themers usually design elements with percentage values in image elements dimensions, so they fit at multiple resolutions. But in complicated cases, it is restricting possibilities on theming.
For example, my VGA monitor that receive grub menu is HD (1920x1080), while it is not recognized by grub/BIOS, but only as... 640x480!!!


As for (1920x1080), if you check with 'videoinfo' at grub prompt, this is not one of them. That's why it goes back to 640x480. If you set it at 1024x768, that will stay at 1024x768. Oh.. you need to type ' pager=1' at bios-legacy grub prompt first as videoinfo will scroll too fast to be readable. Also in uefi grub, 1024x768 is the resolution used, that's also the reason why I suggest 1024x768.

And to fix at 1024x768, use gfxmode and gfxpayload.

I have done a very intensive investigation and I couldn't find any workaround.
There is a hack for intel cpus (i386resolution hack or similar name), but it didn't seem to work for my HW, even though it's supposed to be one of the targeted CPUs.
Maybe you have an idea. I can start a topic for that, if you are interested.

BTW check this

I do not have any coding experience or capability unlike most here. I cannot even modify a git line. I can only use/modify what is developed, like rc.xml or .... but (I think) I can see what most codes do (and I can test it out). Sorry I cannot help much on it, but I certainly hope you get to what you want to do. Best wishes.

Oh... in videoinfo, "preferred mode" does not mean it is an 'available' resolution. Perhaps just what's best for your monitor.

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by