How to install custom grub-theme-manjaro?

I have this custom GRUB theme based on grub-theme-manjaro designed for use in Arch Linux but i dont know how to install it because i just searched grub-theme-manjaro, downloaded the source code from the GitLab, changed the backgrounds, changed the icons from manjaro to arch, and now i have no idea how to even install it. My recreation is at grub-theme-arch by pixrobot on GitHub. The original is at gitlab . manjaro . org in /artwork/branding/grub-theme.

Hi @pixrobot8, and welcome!

I’ve never done this, but considering:

$ pamac list --files grub-theme-manjaro
/usr/share/grub/themes/manjaro/background.png
/usr/share/grub/themes/manjaro/background_old.png
/usr/share/grub/themes/manjaro/dejavu_sans_12.pf2
/usr/share/grub/themes/manjaro/dejavu_sans_14.pf2
/usr/share/grub/themes/manjaro/dejavu_sans_16.pf2
/usr/share/grub/themes/manjaro/dejavu_sans_24.pf2
/usr/share/grub/themes/manjaro/dejavu_sans_48.pf2
/usr/share/grub/themes/manjaro/dejavu_sans_bold_16.pf2
/usr/share/grub/themes/manjaro/dejavu_sans_mono_12.pf2
/usr/share/grub/themes/manjaro/highlight_c.png
/usr/share/grub/themes/manjaro/highlight_e.png
/usr/share/grub/themes/manjaro/highlight_w.png
/usr/share/grub/themes/manjaro/icons/4MLinux.png
/usr/share/grub/themes/manjaro/icons/AlpineLinux.png
/usr/share/grub/themes/manjaro/icons/Manjaro.i686.png
/usr/share/grub/themes/manjaro/icons/Manjaro.x86_64.png
/usr/share/grub/themes/manjaro/icons/SystemRescueCD.png
/usr/share/grub/themes/manjaro/icons/android.png
/usr/share/grub/themes/manjaro/icons/anonymous.png
/usr/share/grub/themes/manjaro/icons/antergos.png
/usr/share/grub/themes/manjaro/icons/arch.png
/usr/share/grub/themes/manjaro/icons/archlinux.png
/usr/share/grub/themes/manjaro/icons/arcolinux.png
/usr/share/grub/themes/manjaro/icons/cancel.png
/usr/share/grub/themes/manjaro/icons/chakra.png
/usr/share/grub/themes/manjaro/icons/debian.png
/usr/share/grub/themes/manjaro/icons/deepin.png
/usr/share/grub/themes/manjaro/icons/devuan.png
/usr/share/grub/themes/manjaro/icons/driver.png
/usr/share/grub/themes/manjaro/icons/edit.png
/usr/share/grub/themes/manjaro/icons/efi.png
/usr/share/grub/themes/manjaro/icons/elementary.png
/usr/share/grub/themes/manjaro/icons/endeavouros.png
/usr/share/grub/themes/manjaro/icons/fedora.png
/usr/share/grub/themes/manjaro/icons/find.efi.png
/usr/share/grub/themes/manjaro/icons/find.none.png
/usr/share/grub/themes/manjaro/icons/freebsd.png
/usr/share/grub/themes/manjaro/icons/frugalware.png
/usr/share/grub/themes/manjaro/icons/gentoo.png
/usr/share/grub/themes/manjaro/icons/gnu-linux.png
/usr/share/grub/themes/manjaro/icons/haiku.png
/usr/share/grub/themes/manjaro/icons/help.png
/usr/share/grub/themes/manjaro/icons/kali.png
/usr/share/grub/themes/manjaro/icons/kaos.png
/usr/share/grub/themes/manjaro/icons/kbd.png
/usr/share/grub/themes/manjaro/icons/korora.png
/usr/share/grub/themes/manjaro/icons/kubuntu.png
/usr/share/grub/themes/manjaro/icons/lang.png
/usr/share/grub/themes/manjaro/icons/lfs.png
/usr/share/grub/themes/manjaro/icons/linux-mint.png
/usr/share/grub/themes/manjaro/icons/linux.png
/usr/share/grub/themes/manjaro/icons/linuxmint.png
/usr/share/grub/themes/manjaro/icons/lubuntu.png
/usr/share/grub/themes/manjaro/icons/macosx.png
/usr/share/grub/themes/manjaro/icons/mageia.png
/usr/share/grub/themes/manjaro/icons/manjaro.png
/usr/share/grub/themes/manjaro/icons/memtest.png
/usr/share/grub/themes/manjaro/icons/mx-linux.png
/usr/share/grub/themes/manjaro/icons/opensuse.png
/usr/share/grub/themes/manjaro/icons/os.png
/usr/share/grub/themes/manjaro/icons/parrot.png
/usr/share/grub/themes/manjaro/icons/pop-os.png
/usr/share/grub/themes/manjaro/icons/recovery.png
/usr/share/grub/themes/manjaro/icons/restart.png
/usr/share/grub/themes/manjaro/icons/shutdown.png
/usr/share/grub/themes/manjaro/icons/siduction.png
/usr/share/grub/themes/manjaro/icons/solus.png
/usr/share/grub/themes/manjaro/icons/steamos.png
/usr/share/grub/themes/manjaro/icons/type.png
/usr/share/grub/themes/manjaro/icons/tz.png
/usr/share/grub/themes/manjaro/icons/ubuntu.png
/usr/share/grub/themes/manjaro/icons/unknown.png
/usr/share/grub/themes/manjaro/icons/unset.png
/usr/share/grub/themes/manjaro/icons/void.png
/usr/share/grub/themes/manjaro/icons/windows.png
/usr/share/grub/themes/manjaro/icons/xubuntu.png
/usr/share/grub/themes/manjaro/icons/zorin.png
/usr/share/grub/themes/manjaro/icons/zorinos.png
/usr/share/grub/themes/manjaro/logo.png
/usr/share/grub/themes/manjaro/logo_old.png
/usr/share/grub/themes/manjaro/menu_c.png
/usr/share/grub/themes/manjaro/menu_e.png
/usr/share/grub/themes/manjaro/progress_bar2_c.png
/usr/share/grub/themes/manjaro/progress_bar_c.png
/usr/share/grub/themes/manjaro/progress_bar_hl_c.png
/usr/share/grub/themes/manjaro/select_c.png
/usr/share/grub/themes/manjaro/slider_c.png
/usr/share/grub/themes/manjaro/slider_n.png
/usr/share/grub/themes/manjaro/slider_s.png
/usr/share/grub/themes/manjaro/terminus-12.pf2
/usr/share/grub/themes/manjaro/terminus-14.pf2
/usr/share/grub/themes/manjaro/terminus-16.pf2
/usr/share/grub/themes/manjaro/terminus-18.pf2
/usr/share/grub/themes/manjaro/terminus-b12.pf2
/usr/share/grub/themes/manjaro/terminus-b14.pf2
/usr/share/grub/themes/manjaro/terminus-b16.pf2
/usr/share/grub/themes/manjaro/terminus-b18.pf2
/usr/share/grub/themes/manjaro/theme.txt
/usr/share/grub/themes/manjaro/userpass.png

It would seem you have to create a directory for it in /usr/share/grub/themes/:

sudo mkdir /usr/share/grub/themes/<newDirectory>/

Where <newDirectory> is the name of the directory you’re creating for the theme.

It seems the theme itself is specified in /usr/share/grub/themes/<newDirectory>/theme.txt:

title-text: ""
title-font: "DejaVu Sans Regular 48"
message-font: "Terminus 16"
message-color: "#7f8c8d"
message-bg-color: "#4d4d4d"
desktop-color: "#24282c"
desktop-image: "background.png"
terminal-font: "Terminus 14"
terminal-left: "0"
terminal-top: "0"
terminal-width: "100%"
terminal-height: "100%"
terminal-border: "0"

# Logo image
+ image {
	left = 30%-250
	top = 10%-30
    file = "logo.png"
}

+ boot_menu {
    left = 15%
    #width = 250
    width = 70%
    #top = 50%-125
    #height = 400
    top = 30%
    height = 44%
    item_height = 30
    item_padding = 5
    icon_width = 32
    icon_height = 32
    item_icon_space = 20
    item_spacing = 5
    item_font =  "Terminus 16"
    item_color = "#cccccc"
    #item_color = "#FFA2A2"
    selected_item_font = "Terminus 16"
    selected_item_color = "#1ABB9B"
    selected_item_pixmap_style = "select_*.png"
    #menu_pixmap_style = "menu_*.png"
}

+ progress_bar {
    id = "__timeout__"
    left = 50%-125
    top = 70%
    width = 250
    height = 20
    show_text = true
    font = "Terminus 14"
    text_color = "#ffffff"
    align = "center"
    text = "@TIMEOUT_NOTIFICATION_MIDDLE@"
    bar_style = "progress_bar2_*.png"
}

+ hbox {
    left = 50%-250
    top = 80%
    width = 500
    #+ label { width = 250 height = 20 align = "center" color = "#ffffff" font = "Terminus 16" text = "[↵] Boot selected OS" }
    #+ label { width = 250 height = 20 align = "center" color = "#ffffff" font = "Terminus 16" text = "[↑ and ↓ Key] Navigation" }
    + label { width = 250 height = 20 align = "center" color = "#ffffff" font = "Terminus 16" text = "E = Edit Boot Options" }
    + label { width = 250 height = 20 align = "center" color = "#ffffff" font = "Terminus 16" text = "C = GRUB Commandline" }
}

So obviously has to be adapted accordingly.

Hope this helps!

Thank you so much! Ill try to do what you recommended!

But how do i apply the theme?

You’d have to change the value in /etc/default/grub:

[...]
GRUB_THEME="/usr/share/grub/themes/Stylish/theme.txt"
[...]

Thanks for the help!

1 Like

Just a tip: this works extremely well, and is gorgeous:

I use it myself even.

Ok, now i have changed GRUB_THEME to link to my theme.txt. Do i have to refresh something to apply it?

I think you have to reinstall grub:

The commands for that are in there.

Do i just have to run sudo pacman -R grub and then run sudo pacman -S grub?

Not AFAIK, no.

Then how is it that when you install grub-theme-manjaro running pamac install grub-theme-manjaro that it applies immediately?

I am not a total newbie to linux, i just dont do stuff with GRUB often.

That happens when grub is reinstalled as in the link I provided.

Cant i just reinstall grub and just run os-prober?

No, it has to be reinstalled according to the link, AFAIK. About OS-prober, :man_shrugging: I don’t use it since I don’t have Windows on my machine, only Manjaro.

Well i dualboot windows and linux because god dang you dont know how many times i have switched between linux and windows. Ill try to do what the link says.

GRUB Reinstalled. Lets test it.

Oh god.

The arch logo is literially like stretched out on the whole screen. Try installing and trying the theme out for yourself. You’ll see what i mean. Uhh, any way to fix this?

Unfortunaeky, no since, as I mentioned:

However, I’m pretty sure if you apply a new theme as per the link I sent you, you can get something…better?..different?..else.

Fine, ill try it.

Can you check if this installation guide i put in my GitHub is correct? Create a new folder in /usr/share/grub/themes/ named arch.
Inside the terminal, run:
cd /usr/share/grub/themes/
sudo mkdir arch
Claim ownership of the newly created folder so you can copy over the theme over using a GUI
Inside the terminal, run:
sudo chown [USERNAME HERE] arch
Replace [USERNAME HERE] with the user you are logged in as so you can use the GUI to copy over the files, which will be important later.
Copy over the theme
On the main page of the repository, click on the green “Code” button and then click on the “Download ZIP” button.
Extract the contents of the zip file, and then search for an arch folder inside the extracted ZIP file.
Copy over the contents of the arch folder inside the extracted zip file into /usr/share/grub/themes/arch/
Select the theme as the main one
Using a text editor, change the line that starts with GRUB_THEME inside of /etc/default/grub to the following: GRUB_THEME=“/usr/share/grub/themes/arch/theme.txt”
Refresh GRUB
Step 1. Reinstall GRUB with your package manager.
For BIOS Systems
In the terminal, run:
sudo grub-install --force --target=i386-pc --recheck --boot-directory=/boot /dev/sdy
sudo grub-mkconfig -o /boot/grub/grub.cfg
For EFI Systems
In the terminal, run:
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=[BOOTLOADER-ID] --recheck
! WARNING ! Replace [BOOTLOADER-ID] with the short name of your distribution! For example, manjaro, debian, etc.
sudo grub-mkconfig -o /boot/grub/grub.cfg
Restart your machine. You should see the GRUB theme.

This can be changed to:

sudo chown $USER arch

Then replacing it manually isn’t neccessary anymore.

And if it’s properly markdown-formatted it should be good. Example:

Use:

/usr/share/grub/themes/arch/

instead of:

/usr/share/grub/themes/arch/

See

What about the Bootloader-Id thingy?

I don’t really, really know what you mean with that. But if my guess is correct and you want to know how to type it, I always do it something like:

To create a directory:

```
mkdir </path/to/create>
```

_Where_ `</path/to/create>` _is the path of the directory that should be created._

Which will then render like:

To create a directory:

mkdir </path/to/create>

Where </path/to/create> is the path of the directory that should be created.