Running Waybar with a Custom Configuration Directory in Sway

When setting up Sway as your Wayland compositor, you might want to organize your Waybar configuration in a non-standard location — for example, keeping a dedicated ~/.config/waybar/sway/ directory to separate your Sway-specific bar configuration from others. This seemingly simple task comes with a couple of subtle pitfalls worth knowing about. The ~ Expansion Problem The […]

A first look at Fedora Silverblue 43

I’m going to test the Fedora 43 Linux distribution in its “immutable” “atomic” shape, Silverblue. Fedora Silverblue is Fedora’s atomic, GNOME-based desktop built around an image-based, mostly read-only system rather than a traditional mutable Linux install. As an atomic desktop: the base OS is image-based, updates are applied as a new deployment, and you switch […]

Neovim and LaTeX with LazyVim, part 3: custom commands

This is a follow-up to the first post on Neovim and LaTeX and the second one. If you write LaTeX in Neovim using the LazyVim distribution, you already get a fantastic editing experience thanks to VimTeX and texlab. But there’s one thing that often trips people up: how do you quickly wrap selected text in \emph{…}, […]

Run mako in Sway/Hyprland, but not in KDE (Wayland)

If you use a Wayland compositor like Sway or Hyprland, mako is a great lightweight notification daemon. Many distros make it “start automatically” via a systemd user service, so you don’t need to add exec mako to your compositor config. I’m experimenting with a setup with KDE, Sway, and Hyprland installed on the same machine […]

Installing Linux on a Dell Pro Max Tower T2

I’ll show how I installed Linux (EndeavourOS, i.e., Arch) on a Dell Pro Max Tower T2. This is quite a powerful computer! Here are a few screenshots taken from Windows 11: Before installing Linux on this computer, I had to change the SSD SATA mode from RAID to AHCI, as documented in a previous blog […]

Install Endeavouros with Disk Encryption

A small blog post on how to install EndeavourOS with LUKS disk encryption. The installation starts and proceeds as usual (see, e.g., my older post). I’m using KDE for this installation. When you get to disk partitioning, choose manual: If you start from a fresh disk, create a new partition table and choose GPT: If […]

Neovim and LaTeX with LazyVim, part 2: customizations

This is a follow-up to the first post on Neovim and LaTeX. I love LaTeX, but I don’t love LaTeX noise. If you use LazyVim’s lang.tex extra, you’ve probably seen a familiar friend pop up in your editor diagnostics: Underfull \hbox. It’s usually harmless, but it’s distracting—especially when you’re trying to focus on content. In […]

Stop VS Code’s Java LSP from Rewriting Your Eclipse .classpath with m2e-apt Entries

How to prevent JDT LS (via m2e) from adding generated-sources APT folders and org.eclipse.jdt.apt prefs to an Eclipse+Maven project in VS Code. If you open a Maven Java project in Visual Studio Code that also contains Eclipse project metadata (.project, .classpath, .settings/…), you might notice that VS Code’s Java tooling (JDT Language Server) “helpfully” edits […]

LaTeX listings: Eclipse colors

This is the style I use to highlight my Java code in LaTeX documents with the Listings package, with Eclipse colors:

And this is an example of a document, where I show the same listing both with black and white colors an Eclipse colors:

Here’s the result:

Browse and run your Sway keybindings with Rofi

Remembering every Sway shortcut is tough. I wrote a small script that parses your Sway config, displays all bindsym shortcuts in a clean, searchable list via Rofi, and executes the command associated with whichever one you select. It’s fast, keyboard-friendly, and great for discovery: “What did I bind to Mod + Shift + P again?” Now you […]

Modern Java in LaTeX listings (Java 17)

If you use the LaTeX listings package to typeset Java, you’ve probably noticed that modern Java has moved faster than the package itself. Records, var, and text blocks may not highlight correctly out of the box. The good news: the listings package is extensible so that you can teach it “modern Java” with a tiny […]

Getting Your MacBook Air Webcam Working on Linux

If you’ve installed Linux on your MacBook Air, you’ve probably discovered that while most hardware works out of the box, the built-in FaceTime HD camera is notably absent from your video applications. Don’t worry—you’re not alone, and there’s a solution that doesn’t involve external USB webcams or complicated workarounds. The issue stems from Apple’s use […]

Maintaining KDE dotfiles with Chezmoi Modify Manager

I have already blogged about managing KDE dotfiles with chezmoi and chezmoi_modify_manager. But what about maintaining them? For example, one of the KDE configuration files changes, and you want to update the version managed by chezmoi. Here’s an example where the Kate configuration file changed on the system and chezmoi detects that:

You can […]

Configure Tmux to support true color and italics in Alacritty and Neovim

I know there are many blog posts about configuring Tmux to support true color and italics in Alacritty, but many of them miss a crucial detail that breaks Neovim’s diagnostic undercurl (wavy underlines). Many of them suggest overriding the TERM variable in Alacritty to xterm-256color, which causes Neovim to lose the ability to display undercurl […]

How we used Maven relocation for Xtend

In Xtext release 2.40.0, we adopted Maven relocation to move Xtend Maven artifacts’ groupIds from org.eclipse.xtend to org.eclipse.xtext without breaking existing consumers. References: https://github.com/eclipse-xtext/xtext/pull/3461 https://github.com/eclipse-xtext/xtext/issues/3398 https://maven.apache.org/guides/mini/guide-relocation.html Rationale Xtend’s Maven coordinates were relocated to comply with Maven Central’s new publishing requirements after the OSSRH sunset. The new Maven Central publishing portal enforces namespace consistency: all artifacts […]

Install Ubuntu on Apple Silicon Macs Using UTM

Let’s install Ubuntu 25.04 on Apple Silicon (M1) in a virtual machine using UTM. We must first download an Ubuntu ISO for ARM. Go to https://ubuntu.com/download/desktop and search for “ARM 64-bit architecture”; if not available for the specific version you want to install, then you’ll have to install the Ubuntu Server and then install the “ubuntu-desktop” […]

Managing KDE Dotfiles with Chezmoi and Chezmoi Modify Manager

If you’re a KDE user who wants to keep your desktop configuration under version control, you’ve probably discovered that KDE’s configuration files can be quite challenging to manage with traditional dotfile tools. KDE stores settings in complex INI files that frequently change, contain system-specific data, and include sections you may not want to track. This […]

Eclipse in Wayland (2025)

Let’s see what Eclipse looks like in Wayland in 2025. I report some screenshots of a few Wayland Window Managers and Desktop Environments. Sway Eclipse looks good in Sway: Hyprland The same can be said for Hyprland, especially now that the infamous bug has been solved: GNOME No problems on GNOME either; I’d expect that […]