# bsol: a GRUB2 boot theme styled as a blue screen

> bsol is a GRUB2 theme that replaces the boot menu with a blue screen of life, and it is a small repository with a single directory of theme files. Installing it means editing /etc/default/grub and regenerating the bootloader configuration on your distribution, which is why the README opens with a warning that a mistake can leave the system unbootable.

**harishnkr/bsol** — grub2 blue-screen-of-life theme 

- Repository: https://github.com/harishnkr/bsol
- Stars: 667 · Forks: 20
- Language: Unknown
- License: GPL-3.0
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/harishnkr-bsol

## Artwork for the boot menu, in one directory

The Blue Screen of Life is a grub theme, and the repository is as small as that description implies. The top level holds a .github directory, a .gitignore, the LICENSE file, the README and one directory called bsol, which is the theme itself.

The premise is a joke with a real audience. The blue screen is a piece of Windows folklore, the image of a machine that has given up, and the theme applies that look to the boot menu. The README's framing is that you own the theme and it becomes the first thing you see.

What that means in practice is that a GRUB2 theme is a text file and some assets. GRUB renders its menu with a terminal graphics mode, and a theme file describes the background image, the colours, the text strings and the fonts. The bsol directory holds the theme.txt that carries that description, the image used as the background, and the font files the theme references.

The licence is GPL-3.0, the default branch is main, and the project is not archived. The release list shows v1.1 on 2026-09-05 and v1.0 on 2024-03-04, so the theme changed once in two and a half years, which is a sensible cadence for something that depends on the look of a bootloader rather than on a toolchain.

The audience is a Linux user who wants their boot screen to be a conversation piece, and who is willing to touch a bootloader configuration file to get it.

## Manual installation, with a warning attached

The installation section carries an explicit warning: make sure you understand what you are doing, because installation of the theme can cause problems in your system if done incorrectly. That is the right warning for a bootloader theme, since the configuration you edit is the one that decides whether the machine starts.

The manual route is described as the preferred method, and it is three steps. Clone the repository, copy the entire bsol directory into /boot/grub/themes, or a similar path depending on your distribution, and then point GRUB at the theme file in the grub configuration.

```bash
git clone https://github.com/harishnkr/bsol.git
```

```
GRUB_THEME="/boot/grub/themes/bsol/theme.txt"
```

The last step is regenerating the GRUB configuration with sudo privileges, and the command depends on the distribution, because each ships its own wrapper. Arch based systems use grub-mkconfig, and Debian based systems use update-grub.

```bash
sudo grub-mkconfig -o /boot/grub/grub.cfg
```

```bash
sudo update-grub
```

Fedora has its own variant of the same operation, and the difference in the path is the tell, since it writes to /boot/grub2/grub.cfg rather than /boot/grub/grub.cfg.

```bash
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
```

That difference is why the README says the theme path is similar depending on your distribution. A path that does not exist is not a theme problem, it is a bootloader that quietly fell back to its default menu.

## Fedora needs two extra switches before the theme appears

The theme is not visible immediately on every distribution, and the README has a separate set of instructions for Fedora based systems that explains why.

Two lines in /etc/default/grub have to be changed there, GRUB_ENABLE_BLSCFG and GRUB_TERMINAL_OUTPUT.

```
GRUB_ENABLE_BLSCFG="false"
GRUB_TERMINAL_OUTPUT="gfxterm"
```

The reasoning is implicit but clear. GRUB_ENABLE_BLSCFG false stops the boot configuration from taking over the screen, and GRUB_TERMINAL_OUTPUT gfxterm selects the graphical terminal output, which is the mode a theme with a background image needs. Without the second line, the menu is drawn in the plain console, and no theme is visible no matter what the theme file says.

The troubleshooting section covers the same ground from the other direction, and it is the more useful list for a machine where the theme did not appear. One fix is to make sure the line setting GRUB_TERMINAL_OUTPUT to console is commented out with a # at the beginning, since that setting would otherwise force the plain console again. The other is to set the graphics mode with GRUB_GFXMODE, given as a resolution and a colour depth, for example 1920x1080.

That second one is the interesting detail for anyone with a HiDPI screen or a monitor the graphics mode does not guess correctly. A theme can be installed perfectly and still not display correctly, because the resolution GRUB picks is not the resolution the panel has, and the background image is scaled into the wrong frame.

## The fonts are the part of the theme you will actually change

A GRUB2 theme renders its interface as text, so the fonts decide whether the joke reads as intended. The README identifies three places where fonts are controlled in the configuration, and all three are set in the theme.txt file.

The terminal-font is the one used when the boot process switches to the terminal mode. The item_font is used on each of the boot entries, the menu items the user picks from. And the font entry is the text used in the countdown. By default the theme uses victor mono italic at various sizes for each of the three texts, and the sizes are part of the design rather than incidental.

The README also documents a bit of history that is useful for anyone who installed an earlier version. The original font used was the Weknow Windows font, which was later changed to Victor Mono Italic, and the note is there so that people who want the old look know where it came from.

Creating a custom font uses the grub-mkfont utility, which converts a font file into the pf2 format the bootloader reads, with the input file being the original font in ttf or another supported format and the output file in pf2 format.

```bash
grub-mkfont --output=output_file.pf2 input_file
```

Two constraints follow from the format. The size can be set with the --size=N option where N is an integer, and the generated font files must sit in the same folder as the theme.txt file, because that is where the theme file looks for them. So the workflow is: convert the font, drop the pf2 next to theme.txt, edit the font line in theme.txt, and preview.

## Previewing the boot menu without rebooting

Rebooting to check a font change is a slow loop, and the README points at a preview tool instead. The grub2-theme-preview package is used to render the theme, and the command is run from inside the bsol directory so that the tool finds the theme file.

The tool opens a window with the theme as GRUB would draw it, which turns the font and layout work into a fast loop.

There is a fallback for when the previewer does not open a window. The README notes that if the theme viewer does not pop up for any reason, for example when using Wayland, you can use a VNC viewer instead, with TigerVNC named as an example.

```bash
vncviewer localhost
```

The Wayland caveat is the interesting part, since it is a general problem with graphical tools that assume an X11 session. A previewer that opens a window on X11 does not open a window on Wayland, and the fix is to fall back to a remote framebuffer view, which is a slightly absurd way to check a boot screen but it does work.

The preview step also closes the loop with the custom font workflow, since the README explicitly points at the preview section after describing how to change the fonts.

## Arch users get an AUR package, everyone else gets a TODO

The README offers a package manager route for Arch Linux and derivatives, pointing at an AUR package called grub-theme-bsol-git. The steps are to run grub-install with the --themes=bsol option and then regenerate the configuration, both with sudo privileges.

The presence of the AUR package means the archive, the theme file and the font are already placed where the loader expects them, so the configuration change is the only manual step. The repository also credits the person who helped with the AUR package, and the credits section points at a grub2 theme tutorial and at another repository that showcases various themes.

For everyone else, the manual steps are the only route, and the TODO section says so in one line: create an install script for various distros. That is an honest statement of the project's state. A theme that requires a distribution maintainer to know where /boot/grub/themes lives, which configuration keys to change and which regeneration command to run is a manual task, and a script would remove the three places where the documentation can be wrong.

There is also a packaging nuance worth noting for anyone writing such a script. The theme.txt is a GRUB2 theme file, and GRUB2 is the second generation of the bootloader, so the theme is tied to systems using grub2 rather than the older grub. A user with the original grub would not find this theme usable at all.

## What to check before you install a boot theme

This is a small project with a small footprint, and the risks are ordinary but real.

The first thing to check is what your distribution's GRUB configuration file is called and where it lives. The README assumes /etc/default/grub, which is true for most distributions, and the regeneration command differs between them, as the three separate instructions show. Installing the files and running the wrong regeneration command leaves the machine with an unchanged boot menu, which is harmless, and editing the wrong path in the configuration file is also usually harmless, but a hand edit that produces a malformed configuration is not, and the warning in the README is about that.

The second check is the graphics mode. If your display is not one of the resolutions GRUB guesses, the theme will render badly or not at all, and the GRUB_GFXMODE line in the troubleshooting section is the fix.

The third check is the font. The default victor mono italic has to exist in the pf2 files shipped with the theme, and if you replace it with your own, the pf2 has to sit beside theme.txt in the bsol directory, not in a font directory on the system.

On maintenance, the last push was on 2026-09-05, the same day as the v1.1 release, and the repository is not archived. The licence is GPL-3.0, so the theme and its assets can be reused and modified provided the notice travels with it.

The alternative, for completeness, is any other GRUB2 theme, because the mechanism is identical: a directory, a theme.txt, a GRUB_THEME line and a regeneration command. What bsol adds is a specific look and a set of pre-converted fonts. If your bootloader needs to keep working more than it needs to look unusual, the default menu is the safer choice and the difference between them is only in the theme file.

## Conclusion

bsol fits a Linux user on grub2 who wants a memorable boot screen and is comfortable editing /etc/default/grub and regenerating the bootloader configuration on their own distribution. It does not fit a machine where the bootloader must stay untouched, and there is no install script yet for the distributions that need one. Before applying it, copy your current /etc/default/grub, run the preview tool on the theme, and confirm the GRUB_GFXMODE line matches your display.

## FAQ

### How do I install the bsol GRUB theme?

Clone the repository, copy the entire bsol directory to /boot/grub/themes or a similar path for your distribution, set GRUB_THEME to the path of the theme.txt file in /etc/default/grub, and regenerate the bootloader configuration with sudo. The README warns that installing the theme can cause problems if done incorrectly.

### What command regenerates the GRUB configuration for my distribution?

The README gives one per family: sudo grub-mkconfig -o /boot/grub/grub.cfg for Arch based systems, sudo update-grub for Debian based systems, and sudo grub2-mkconfig -o /boot/grub2/grub.cfg for Fedora based systems, each run with sudo privileges.

### Why is the bsol theme not showing on Fedora?

The README says that on Fedora based systems you need to set GRUB_ENABLE_BLSCFG to false and GRUB_TERMINAL_OUTPUT to gfxterm in /etc/default/grub, and to make sure any line setting GRUB_TERMINAL_OUTPUT to console is commented out with a # at the beginning.

### How do I change the fonts used by the bsol theme?

The three font settings, terminal-font, item_font and the countdown font, are all in the theme.txt file. To use a custom font, convert it with grub-mkfont --output=output_file.pf2 input_file, keep the generated pf2 file in the same folder as theme.txt, and then edit the font line in theme.txt.

### How can I preview the bsol theme before rebooting?

The README uses the grub2-theme-preview package and runs grub2-theme-preview bsol from inside the bsol directory. If the preview window does not open, for example under Wayland, you can use a VNC viewer such as TigerVNC with vncviewer localhost.

## Sources

- [harishnkr/bsol on GitHub](https://github.com/harishnkr/bsol)
- [Issues](https://github.com/harishnkr/bsol/issues)
- [License: GPL-3.0](https://github.com/harishnkr/bsol/blob/main/LICENSE)
- [README](https://github.com/harishnkr/bsol/blob/main/README.md)
- [Releases](https://github.com/harishnkr/bsol/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/harishnkr-bsol
