## Installation via GRUB Customizer
In order to clone the repository from GitHub, you have to install Git, via the `git` package.
Alternatively, you can download a zip archive by clicking on **Code** then **Download ZIP**
#### Clone the repository
You can clone the repository or go to the [release page](https://github.com/AdisonCavani/distro-grub-themes/releases) and download a single theme.
```shell
git clone https://github.com/AdisonCavani/distro-grub-themes.git
```
### Install GRUB Customizer
``grub-customizer`` is not available on Ubuntu 21.10 and above.
See [#56](https://github.com/AdisonCavani/distro-grub-themes/issues/56).
You should [install it manually](#manual-installation), instead.
apt
```shell
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
```
pacman
```shell
sudo pacman -S grub-customizer
```
Grub Customizer DOES NOT WORK on recent Fedora releases without extensive modification.
[Manually installing](#manual-installation) a GRUB theme is much more secure and hassle free.
Use this at your own risk.
dnf
```shell
sudo dnf install grub-customizer
```
eopkg
```shell
sudo eopkg install grub-customizer
```
### Install a pre-made theme with GRUB Customizer
- Open GRUB Customizer
- Click on the **Appearance settings** tab
- Select _Custom resolution_ and select or type in your resolution, e.g 1920x1080
- Press the _Add theme_ button, then navigate to the directory where you cloned the repository; in my case `/home/adison/distro-grub-themes`
- Select your theme located in the `/themes` directory
- Save the changes
### Install a custom-made theme with GRUB Customizer
- Extract and edit your theme located in the `/themes` folder
- With your file manager, inside the modified theme's directory, select all files and create an archive with .tar or .tar.xz format
- Open GRUB Customizer
- Click on the **Appearance settings** tab
- Enable _Custom resolution_ and select or type in your resolution, e.g 1920x1080
- Press the _Add theme_ button, then navigate to the directory where you cloned the repository; in my case `/home/adison/distro-grub-themes`
- Change the _Archive files_ setting to **All files**
- Select your archive
- Save the changes
KDE Neon's default theme is set in a separate file that overrides any theme changes you make.
Run the following to disable the default GRUB theme:
```shell
sudo rm /etc/default/grub.d/99_breeze-grub.cfg
sudo update-grub
```
To revert back to the orignal KDE Neon theme, open GRUB Customizer, and in the Appearance settings tab, change the theme dropdown back to breeze.
## Installation via Nix Flakes
### Prerequisites
- Nix 2.4 or later
- Experimental features `nix-command` and `flakes` enabled.
- You can achive that by setting the following options and rebuilding your system.
```nix:configuration.nix
nix = {
package = pkgs.nixFlakes;
extraOptions = ''
experimental-features = nix-command flakes
'';
};
```
### NixOS module
To use this theme as a NixOS module, a bare-minimum configuration would be as follows:
```nix:flake.nix
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
distro-grub-themes.url = "github:AdisonCavani/distro-grub-themes";
};
outputs = { self, nixpkgs, ... }@inputs: {
nixosConfigurations."default" = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
modules = [
./configuration.nix
inputs.distro-grub-themes.nixosModules.${system}.default
];
};
};
}
```
```nix:configuration.nix
{ config, pkgs, lib, ... }: {
distro-grub-themes = {
enable = true;
theme = "";
};
}
```
### Standalone setup
To use this theme in a standalone setup, a bare-minimum configuration would be as follows:
```nix:flake.nix
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
distro-grub-themes.url = "github:AdisonCavani/distro-grub-themes";
};
outputs = { self, nixpkgs, ... }@inputs: {
nixosConfigurations."default" = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = {
# Pass system and inputs to the configuration.nix file
inherit system inputs;
};
modules = [
./configuration.nix
];
};
};
}
```
```nix:configuration.nix
{ config, pkgs, lib, inputs, system, ... }: {
boot.loader.grub = rec {
theme = inputs.distro-grub-themes.packages.${system}.-grub-theme;
splashImage = "${theme}/splash_image.jpg";
};
}
```
## Manual Installation
In order to clone the repository from GitHub, you have to install Git, via the `git` package.
Alternatively, you can download a zip archive by clicking on **Code** then **Download ZIP**.
#### Clone the repository
You can clone the repository, or go to the [release page](https://github.com/AdisonCavani/distro-grub-themes/releases) and download a single theme.
```shell
git clone https://github.com/AdisonCavani/distro-grub-themes.git
```
#### Create themes directory
To create themes directory, replace `BOOT_GRUB_LOCATION` with the directory where GRUB is located.
Usually it's `/boot/grub` or `/boot/grub2` but some distributions have a different one, so you'll have to figure it out.
```shell
sudo mkdir BOOT_GRUB_LOCATION/themes
```
#### Edit or use a pre-made theme
```shell
cd distro-grub-themes/themes
```
#### Copy theme
The theme must be unpacked inside a folder before you can install it.
```
sudo tar -C BOOT_GRUB_LOCATION/themes/ -xf .tar
```
#### Edit GRUB config
You can use your favourite text editor for this. Here, we use nano.
```shell
sudo nano /etc/default/grub
```
Uncomment this line and set your display resolution:
```
GRUB_GFXMODE=1920x1080
```
Make sure ``GRUB_TERMINAL_OUTPUT="console"`` is commented out!
At the end of the file, add the path of your theme:
```
GRUB_THEME="BOOT_GRUB_LOCATION/themes//theme.txt"
```
Ctrl+O to save, Ctrl+X to exit.
#### Update Grub config
You'll need to tell GRUB to update its configuration in order to include the new theme.
##### Ubuntu and Debian-based systems:
```shell
sudo update-grub
```
##### Fedora, Arch & others:
If you have a UEFI system, run:
```
sudo grub-mkconfig -o BOOT_GRUB_LOCATION/grub.cfg
```
or
```
sudo grub2-mkconfig -o BOOT_GRUB_LOCATION/grub.cfg
```
These commands have only been tested on Arch & Fedora, and may not work on your distribution. Consult your distro's documentation and/or forum for the GRUB config file directory and its update commands.
KDE Neon's default theme is set in a separate file that overrides any theme changes you make.
Run the following to disable the default GRUB theme:
```shell
sudo rm /etc/default/grub.d/99_breeze-grub.cfg
sudo update-grub
```
To revert back to the orignal KDE Neon theme, set the `GRUB_THEME` value in `/etc/default/grub` to `/boot/grub/themes/breeze/theme.txt`.
## Install theme in Ventoy
Extract `Ventoy.tar` to `/ventoy/theme`
Locate `ventoy.json` file in `/plugin/ventoy/` directory and change:
```
"file": "/ventoy/theme/blur/theme.txt",
```
to
```
"file": "/ventoy/theme/Ventoy/theme.txt",
```
For more information, head over to the [Ventoy website](https://www.ventoy.net/en/plugin_theme.html).