Breeze GRUB visual style : a new GRUB theme (again !)

screenshot

⮝ This screenshot is the most recent from the sebastjava/breeze-grub-v2:feedback, which is constantly evolving based on your feedback. (right-click to Open Image in New Tab)

This project aims to replace https://invent.kde.org/plasma/breeze-grub.

  • A better design, based on the Plasma Breeze colors and shapes.
  • Just black and white plus some accent color. It’s a design consistent with the Plymouth theme that follows, which is usually just a logo on a black background. We could, of course, add an image or photo as a background.
  • Based on the best variable-width bitmap font: Helvetica. That’s a true bitmap font, not a rough conversion from a TrueType (TTF) font. (Read more)
  • Large boot menu for long menu entries such as “KDE neon User Edition GNU/Linux, with Linux 6.14.0-37-generic (recovery mode)”. This was essential because GRUB does not handle line breaks, which causes truncated lines !
  • 50% height boot menu. This allows space for multiple systems with their respective options. And there’s a “scrollbar” in case of overflow. That’s a big improvement on the current version !
  • Fits every screen resolution. Best from 1024x768px to 1920x1080px. Will automatically shrink on small screens, as low as 640x480px. UHD screens are simply set to standard 1920x1080px in /etc/default/grub.

Compare with the official breeze-GRUB theme (breeze-grub-v1)

right-click to Open Image in New Tab right-click to Open Image in New Tab
breeze-grub-v1-50a1e715-1280x800-txt breeze-grub-v2-1280x800-txt

There are many differences and everything is better in this breeze-grub-v2.

6 Likes

Also discussed here: Breeze GRUB visual style : a new GRUB theme (again !) (#120) · Tasks · Teams / KDE Visual Design Group / Issues · GitLab

This is soo good!

will it show up even if kde isnt installed but you are booting to a usb witb kde? Im really inexperianced when it comes to grub

First of all, my project isn’t official. Not yet.

I’m trying to promote it right here on KDE Discuss, hoping to see sebastjava/breeze-grub-v2 integrated into KDE soon. I want to replace plasma/breeze-grub with my new version. But for now, it remains an independent project.

As for whether this GRUB theme can be integrated into your KDE distribution on your USB drive, it depends on your distribution:

  • KDE Neon
  • Kubuntu
  • Fedora KDE
  • etc.

Are you still using a live USB drive? You can’t modify it. To my knowledge, it’s impossible to install this custom GRUB theme on it.

I highly recommend starting by installing your preferred KDE distribution on your SSD or hard drive. There are many good reasons to do so.

Once your KDE distribution is installed on your SSD or hard drive, you can install my GRUB theme, even though it’s not yet part of the official KDE distributions.

INSTALL IT! (master branch; stable version, but not the latest)

P.S.: Sorry for the duplicated and deleted posts, I am still unfamiliar with this KDE Discuss forum.

I would love to see the current one is replaced with this one.
I don’t understand why most Linux distros have such default grub themes that is so far away from their default DE theme.
Therefore, I had to create my own grub theme based on one of those in KDE Store (I don’t remember the name now).
I’ll try to share a screenshot a little later, but my suggestions for the one above would be:

  1. Icons for all menu entries, including two that I always add at the bottom of the menu: “Reboot” and “Shutdown”
  2. Progress bar below the grub menu
  3. Keyboard shortcuts horizontally aligned at the boot with similar monochrome icons instead of text in square brackets

Here is the screenshot of my custom grub theme named “breeze-dark” :wink:

1. Icons for all menu entries.

I strongly agree with that. It is with sadness and regret that I abruptly deleted them all, except for the KDE and KDE Neon logos, due to potential trademark and license issues.

I’ve already had many intense discussions about this and other things:
https://invent.kde.org/plasma/breeze-grub/-/merge_requests/9#note_1425009

Many of the logos in this are subject to trademark and may need permission from the trademark holder, certainly documentation why it’s ok to use.

If you have a package of logos with 100% guaranteed legal coverage, let me know. I am remaining cautious at present, but I may come back to this in a subsequent MR. :slight_smile:

1. Progress bar below the grub menu.

I am trying to make something universal. This GRUB theme can go as low as 640x480px screen resolutions, and still display okay. Some old BIOS-UEFI are bugged and can only work at very low resolutions. I doubt that this is still true, but I’m not certain that it’s false. :frowning:

So, with the current design, there is not enough space to put the progress bar at the bottom, for every possible or impossible case…

1. Keyboard shortcuts horizontally aligned at the boot with similar monochrome icons instead of text in square brackets.

Yes, I must admit I’m not entirely satisfied with this particular piece in its current version. But this piece has already been the subject of intense discussion, so I’d hesitate to change it again. It’s a long story, but if I try to summarize, I’d say we need to:

  1. Avoid confusion with a mouse-clickable button.
  2. Avoid text within images to allow for future translations.
  3. Symbols without text or tooltips are not understood by absolutely 100% of the world.

Here’s some of the original proposals that got rejected:


(sources-svg/info.svg · master · Sébastien Bouchard / Breeze GRUB visual style - version 2 · GitLab)

(sources-svg/info.svg · feedback · Sébastien Bouchard / Breeze GRUB visual style - version 2 · GitLab)

Here’s the discussion behind this:
https://invent.kde.org/teams/vdg/issues/-/work_items/120#note_1442474
https://invent.kde.org/teams/vdg/issues/-/work_items/120#note_1442989

On top of that, I had to face some technical issues. Getting precise layouts for every screen resolutions for a GRUB theme is not always easy. There were quite a few trials and errors on VM. :slight_smile:

Of course, I’ll keep thinking about this…

In summary, I have already gone through other KDE channels in the hope of seeing my project getting integrated into KDE, and I have already faced several criticisms that forced me to make some compromises. So I mostly agree with you, but I remain cautious. :wink:

2 Likes

logos and icons

Very nice logos and icons. This makes a difference. I am waiting to see if my project gets officially approved and could come back later with a separate merge request (MR) for logos and icons. (But only if someone can give me some legal support about such a big pack of logos..!)

hotkeys info

I should try to put all this keyboard info on one line at the bottom. Sometime later. That blue color is nice, I did something similar on previous versions. But I fear that this could be confused with a clickable link. I’m used to receiving a lot of criticism and sometimes I can see it coming in advance. (!)

GRUB font

Sorry, but your bitmap font is not perfect. There’s some subtle “random pixels” in there. I can clearly see that this is a bitmap artificially created from a TTF, or similar. If you have some spare time and are a true perfectionist, read all about my “perfect” bitmap font: about-font.md · master · Sébastien Bouchard / Breeze GRUB visual style - version 2 · GitLab

2 Likes

Thanks for your detailed reply full of information that has to be taken into account.
I understand the importance of copyrights, and respect them, but sometimes it becomes so unreasonable that I choose to ignore individually, which might not be possible to do for an organization like KDE (too complicated legal stuff for me).
Yes, I created my grub fonts from TTF, and hope to be able to replace it thanks to the information you’ve provided above…

I could at least start by adding the “Memory test…”, “UEFI firmware…” and other generic icons. I’ll try to find some time for that.

Only the logos will require more research…

Please show your support ! Click on “like” and/or say you like it !

There are still improvements to come, but this project is already mature enough to replace the original breeze-grub, IMHO.

I suppose the next step will be to create an issue on breeze-grub to request that this project be included in the official KDE packages? It could either replace the original breeze-grub, or simply be added as a second GRUB theme.

Spinner-2

I’m not 100% ready yet. I should at least merge the feedback branch into master. (?) But I have other things to do, this could take some time.

1 Like
  • Keyboard shortcuts section now vertically centered
  • [Enter], [Up/Down], [E], [C] in blue
  • Generic icons and Linux logo added (more to come later…)

Check the OP ⮝ for the latest screenshots (right-click to open image in new tab for 100% scale).

1 Like

The feedback branch has now been merged into the master branch. The master branch is therefore up-to-date and stable.

To do:

  1. Add the logos of other Linux distributions, plus Windows and macOS. I need your advice on the copyright, license, and trademark issues for all these logos. Can we summarize this as “fair use”?
  2. Make the fonts compatible with Secure Boot. Otherwise, everything automatically reverts to “GNU Unifont Regular 16” when Secure Boot is enabled. No other font works!

:white_check_mark: Click on “Like”!
:white_check_mark: Say you want this new GRUB theme to be part of the official KDE packages!

I see you use Helvetica, but isn’t that font copyrighted by Monotype? I seem to remember that that is why Arial exists. MS didn’t want to pay the license fee.

I don’t know much about life. But I tried to understand this copyright and licensing thing. I hope I haven’t made any mistakes:

Copyright 1984-1989, 1994 Adobe Systems Incorporated.
Copyright 1988, 1994 Digital Equipment Corporation.

Adobe is a trademark of Adobe Systems Incorporated which may be
registered in certain jurisdictions.
Permission to use these trademarks is hereby granted only in
association with the images described in this file.

Permission to use, copy, modify, distribute and sell this software
and its documentation for any purpose and without fee is hereby
granted, provided that the above copyright notices appear in all
copies and that both those copyright notices and this permission
notice appear in supporting documentation, and that the names of
Adobe Systems and Digital Equipment Corporation not be used in
advertising or publicity pertaining to distribution of the software
without specific, written prior permission. Adobe Systems and
Digital Equipment Corporation make no representations about the
suitability of this software for any purpose. It is provided "as
is" without express or implied warranty.

And this font comes from the Ubuntu repositories:

sudo apt install xfonts-100dpi xfonts-75dpi # Ubuntu universe/x11
kate /usr/share/doc/xfonts-75dpi/copyright # font-adobe-75dpi section

I know that Noto Sans is the default font for Plasma Breeze. It seems like a much more logical choice at first glance. But converting TTF fonts to bitmap format generally doesn’t produce good results.


Noto Sans Regular 18 at 2X scale : bad


Helvetica Regular 18 at 2X scale : good


Find the whole story on about-font.

Please let me know if you find something wrong or if you have a better bitmap font for a GRUB theme. I want a sans-serif variable-width font like Helvetica, Arial, Noto Sans or similar. I’ve already tried with Noto Sans, DejaVu Sans, and Liberation Sans. Only the Helvetica font gives good results, simply because it’s a true bitmap font to begin with.

I have no legal expertise whatsoever, but I think such uses of logos with copyright are completely legal.
For example, Wikimedia Foundation is very very strict on this matter, and such logos are used there (and in Wikipedia) in such a manner that has passed very strict legal scrutiny, like the one here:

1 Like

Thanks. I could use https://commons.wikimedia.org as a reference.

IMHO, it’s a bit like opening a clothing and accessories store. I don’t think I should have to worry about asking for permission to display every company’s logo! I’m just circulating the merchandise, that’s all!

Trademarks

Every logo on https://commons.wikimedia.org will have something like this:

This work includes material that may be protected as a trademark in some jurisdictions. If you want to use it, you have to ensure that you have the legal right to do so and that you do not infringe any trademark rights. See our general disclaimer.

I would still need to learn a little more about trademarks before going ahead. I hope to find a common reference that talks about “fair use” of trademarks.

Copyrights and license

After learning a little more about trademarks, I guess I would still need to check for copyright and license for every logo, one by one !?

According to https://commons.wikimedia.org, the Windows 11 logo is in the public domain. Same thing for the Apple logo. But it looks like it isn’t always so easy. Example:

Ubuntu-logo-no-wordmark-solid-o-2022.svg (Licensed under GPL-3.0 or later)

Mandatory checks at https://invent.kde.org

Furthermore, I must go through the pipelines at https://invent.kde.org. There, a reuse lint ensures that each file includes copyright and license information.

Of course, you can create a REUSE.toml file to easily validate sets of files, but you’ll still need to consider all of this.

Limited availability for a while

I spent a good part of the winter on this little project. I have many other things on my mind, and I’ve fallen behind on them. So I’ll have to take a break for a while to work on some minor health and financial issues.

1 Like

It looks really good take your time.

Rambling

I hope one day for kde linux they do something like it for systemd boot since yeah systemd boot looks bad from a non linux user perspective.

The current GRUB theme v1 is not working properly

The primary purpose of the GRUB menu is to choose between several operating systems. However, the current Breeze GRUB theme has a menu height limited to 200px. This doesn’t even allow for displaying two operating systems. Worse, there’s no scrollbar to indicate when to scroll.

This new Breeze GRUB theme v2 solves this problem, and much more: README.