Arch with LVM on LUKS

Arch Linux installation with LVM on a LUKS-encrypted drive

8 minute read

Edit (2021-11-04): fix terminology mess-up: LUKS on LVM -> LVM on LUKS
Edit (2021-07-01): fix typo in GRUB_CMDLINE: cryptodevice -> cryptdevice
Edit (2020-06-16): use dd to create swap file instead of fallocate


Disclaimer: some of the steps in the Arch Linux installation procedure change from time to time, so I would recommend checking out the awesome Arch Linux installation guide in the Arch wiki to get a fully up-to-date picture of the process.


It is well known that Arch Linux does not have the easiest installation process of all Linux distributions. In my opinion, for technical users this is a big plus, as you get to know your system better simply by having to set it up from scratch. This comes with the perk that you only install the packages you need, leading to a smaller and arguably snappier system.

In this guide, I’m documenting my latest Arch Linux installation on my laptop, where I set up a logical volume with LVM on top of a fully-encrypted disk with LUKS. Encrypting your disk in your mobile devices should be a requirement if you value your security and/or privacy. Nowadays it has almost no performance penalties and it provides countless benefits.

Tor with qutebrowser

Run qutebrowser with tor by default

1 minute read

If you are a qutebrowser user and care about privacy and anonymity, you may want to run qutebrowser using the tor network by default. Doing so is easy. This post documents how to set it up.

My experience with Soverin.net

Problems plague the privacy-centered email provider soverin.net

3 minute read

My degoogling process started a few months ago, and it included moving on from Gmail to a privacy-focused email provider, among many other actions. I surveyed the landscape and considered Proton Mail, Tutanota, Posteo, and a few others. Finally I settled with the Amsterdam-based Soverin.net, opened an account back in July 2019 and paid for a full year of service. What follows is the story of why I canceled my account yesterday in favor of another provider.

Gaia Sky 2.2.0

Planetary surfaces, keyframed camera, new scripting and more

6 minute read

Today we are releasing a brand new version (2.2.0) of Gaia Sky with several major changes and new features. To sum up, github reports 1071 changed files, with 81672 additions and 31763 deletions. Gitlab displays a “Too many changes to show” banner, as their cap is at a 1000 files. This makes it by far the largest release ever, followed by version 1.5.0 in the summer of 2017.

Learning ncurses

Implementing a snake game in the terminal

6 minute read

tsnake, a snake game in the terminal

tsnake, a snake game in the terminal

Lately, I have been kicking the dust off my C++ skills, and decided to start by learning to use a library which I have been eyeing for a while, ncurses. ncurses is a C library which lets you create text-based UI programs for the terminal, in the same fashion as the gif above. Basically, you can use the terminal to implement text-based user interfaces. Since I seem to have an obsession with snake games, I figured I’d create a snake game for the terminal.

Scripting Gaia Sky

Random thoughts on the Gaia Sky scripting system

6 minute read

Scripting Gaia Sky with Py4J

Scripting Gaia Sky with Py4J

Gaia Sky has a quite powerful Python scripting system which has gotten a revamp lately. The system exposes an API which can be used from Python scripts to interact with an instance of Gaia Sky running in the same machine (so far). But to understand where we are, we need to know where do we come from.

Website design by myself. See the privacy policy.
Content licensed under CC-BY-NC-SA 4.0 .