Monthly Archives: February 2025

EndeavourOS Mercury

I haven’t blogged about the EndeavourOS installation for a while.

Let’s have a look at the new EndeavourOS Mercury. I will install it with KDE Plasma into my LG Gram 16.

The installer has been featuring KDE Plasma instead of Xfce for a while:

Unfortunately, the screen isn’t automatically scaled, so it’s a bit too small. I could change the scaling, but I’ll leave it like that. As shown later, the first time I log into the installed KDE Plasma Wayland session, KDE will automatically scale the display to a comfortable size.

As usual, I must connect to the Internet and add my Italian keyboard layout. If you know KDE, it’s easy with its system settings:

Before starting the installer, I customize GRUB, as shown in my post.

Now that I’m connected let’s start the online installer:

And I also take the chance to update the mirrors (which the documentation says will now be part of the installed system):

You also have the partition manager if you want to partition in advance. I’ll use the partition program during the installation.

Let’s “Start the Installer”, and I choose “Online” as the method.

The default language proposed is Italian, which was detected correctly. However, I have always preferred English OS installations, so I changed it.

The location is detected correctly, and I keep the proposed settings for numbers and dates:

I have to change the keyboard layout to Italian:

As I anticipated, I’ll install KDE Plasma:

You can review the packages to install; these are the defaults:

As I usually do, I also install LTS kernel in addition (you never know) and Printing packages:

As for the boot loader, the default is systemd-boot, but I prefer the good ol’ grub:

For partitioning, you have lots of choices:

In this computer, I already have a few Linux installations, so I want to do a manual partitioning:

The crucial thing is to specify the current UEFI partition so that the new entry will go into the existing one. I select it and press “Edit”. I only must specify the “/boot/efi” mount point:

Let’s create the primary partition using the “Free Space”: select it and press “Create”. I specify 100 GB, the BTRFS filesystem, the point point “/” and a label:

One of the helpful features of this installer is that you can also specify the position of the partition: in this case, I choose to have the partition at the end of the free space by dragging the partition to the end:

Here’s the result:

I have two SSDs with a few partitions I want to be mounted on this installation. Thus, I select the other SSD:

I “Edit” the involved partitions with my preferred mount points:

I’m done with partitioning, and in the following window, I specify my user’s details.

Finally, here’s the recap:

Let’s start the “Install”.

Remember that during the slide show, you can toggle the logging (the button on the left of the percentage):

By the way, did you see the first slide about contributing? I’ve just contributed because I love EndeavourOS 🙂 You might want to contribute as well if you like this distro!

In about a few minutes (this computer is powerful), the installation finished without problems. Time to restart!

Rebooting says that a job is still running for “User Manager”, but hitting “Ctrl+Alt+Del” a few times forced the reboot.

Let’s log into the installed system (remember, the default is Wayland):

As anticipated, KDE automatically set the scaling to 125%, which could be fine for this laptop:

I changed it to 150% to have a more readable screen.

The Plasma theme is the “Breeze Dark EndeavourOS”, which is dark with a purple accent:

Now, it’s time to run my Ansible Role for KDE, and then I use Chezmoi for my dotfiles.

Everything went smoothly, and I have a working KDE desktop configured as I want.

Since I use BTRFS, I also set the snapshots with BTRFS Assistant.

The BTRFS subvolume layout implemented by EndeavourOS is nice:

Concerning “/etc/fstab”, I had to add the option “nodiscard” because the “fstrim.timer” already performs trimming once a week.

Once again, EndeavourOS provided a pleasant installation experience and a well-configured OS.

Enjoy it! 🙂

My Ansible Role for Nerd Fonts

Installing Nerd Fonts is easy in Arch Linux: they are in the official repositories. That’s not true for Ubuntu and Fedora. Of course, installing them in these distributions is also not complicated. Still, it is a manual procedure: download the font archive, extract it in a specific directory, and regenerate the font cache.

That sounds like an automation task for Ansible!

I created an Ansible role to install my favorite Nerd Fonts in Ubuntu and Fedora: https://github.com/LorenzoBettini/my_nerd_fonts_role.

You can find the instructions for using such a role in your Ansible playbooks.

Here, I briefly describe the main parts.

The file “tasks/download-font.yml” defines the tasks for downloading and extracting the zip archive after creating the destination directory:

The “tasks/main.yml” uses the above tasks, iterating through all the specified fonts to install. It also ensures that some packages are installed:

The variable “fonts_to_install” contains the list of font names to install based on the ZIP archives to download from the Nerd Fonts release site.

The file “vars/main.yml” contains my list of fonts to install:

That’s all: I use this role in my playbooks, and it installs all the Nerd Fonts I like best.

Enjoy your Nerd Fonts! 🙂

Java, Maven and Gitpod, part 5: the Formatter

This is the 5th post about using Java in Gitpod.

It assumes you have already read the first, second, third, and fourth posts.

We can benefit from automatic formatting. First, select (from F1) the command “View: Toggle Render Whitespaces”. We can see that the Maven archetype generated Java source code with spaces for indentation:

I prefer tab characters for indentation. If we select “Format Document” (by searching with F1 or by the shortcut “Strl+Shift+I”), the formatter changes the style of curly brackets in the “main” method, but it retains the current indentation characters.

Let’s configure the Java formatted for tab indentation characters. By pressing F1, we access the global search. Let’s start typing “formatter”:

We chose the second one (with “Preview”). We get a notification about a missing formatter profile:

Of course, we accept to create one. This will create a “java-formatter.xml” file in the “.vscode” directory so that our formatting profile will be part of the Git repository. It will also open a visual editor:

We select the “tab” “indentation policy” and uncheck “Detected indentation from file content” (otherwise, the formatter will still use the current indentation character from the current file). Note that the preview will show tab characters now:

Once the file for the formatted profile is saved (and we’ll commit that to the Git repository), we can try formatting our Java source code again, and this time, we get tab indentation characters (you might want to explore the other formatted settings):

If we try to format the “pom-xml”, we get an error saying there is no formatter for XML files; the pop-up offers to install one, and we get a list of available XML formatters. Let’s choose the Red Hat one:

Unfortunately, this formatter does not provide a visual editor for its settings; the customization is documented, but it requires a manual modification of the “.vscode/settings.json” (code completion is still available anyway). For example, to have tab characters (of size 4), I put this section:

When selecting “Format Document”, indentation spaces are turned into tab characters.

If we’re happy with this extension, we can follow the usual procedure to store it in “.gitpod.yml” (e.g., with the gear icon of the extension page).

That’s all for this post! Stay tuned for more 🙂