Dis­tro Hop­ping

5:13PMJuly 24 2025Daniel Tompkins

Archive

Rasp­berry Pi

As a kid, Win­dows and macOS were the only con­sumer-ready op­er­ating sys­tems that I knew ex­isted. Our first (family) com­puter was a desktop, and it used Win­dows 95. I had no idea about the un­der­lying dif­fer­ences in OS ker­nels, filesys­tems, and user in­ter­faces that make a system unique.

Windows 95 at first run. The desktop is shown with the default wallpaper and icons.
Windows 95 at first run. The desktop is shown with the default wallpaper and icons.
Raspberry Pi desktop shown with the welcome wizard.
Raspberry Pi desktop shown with the welcome wizard.

Playing with the little Rasp­berry Pi single-board com­puter got me hooked on Unix-like sys­tems— es­pe­cially working in the shell. This led me down the rabbit hole of in­stalling and cus­tomizing dif­ferent Linux op­er­ating sys­tems— distro hop­ping.

From Win­dows to Linux

On my first laptop— a Win­dows 10 ma­chine, I started using the Git BASH pro­gram in order to have the fa­miliar Unix com­mands that made soft­ware de­vel­op­ment com­fort­able for me on Linux. Later on, I dis­cov­ered WSL— the Win­dows Sub­system for Linux .

Get Started with WSL

WSL is a com­pat­i­bility layer for run­ning Linux bi­nary ex­e­cuta­bles na­tively on Win­dows. It al­lows you to run a Linux en­vi­ron­ment di­rectly on Win­dows without the over­head of a vir­tual ma­chine. Check out my blog post from 2020 on in­stalling WSL2 and a graph­ical Linux in­ter­face.

When I was using WSL, it was in its in­fancy. There were some lim­i­ta­tions— specif­i­cally ac­cessing your com­put­er's graph­ical hard­ware. The next log­ical step was to setup dual-booting — se­lecting ei­ther the full Win­dows 10 or Ubuntu sys­tems to load during the boot se­quence. This al­lowed me to use the full Ubuntu desktop en­vi­ron­ment and ac­cess my com­put­er's hard­ware without the lim­i­ta­tions of WSL.

In col­lege, Win­dows had been a ne­ces­sity for easy ac­cess to spe­cific soft­ware that was (at the time) only de­vel­oped for Win­dows— mainly CAD soft­ware for my ar­chi­tec­ture de­gree. Even­tu­ally, though, I dropped Win­dows al­to­gether for Ubuntu.

Around 5 years ago, at the start of the pan­demic lock­down, I took the plunge and made a ca­reer change to be­come a full-time pro­fes­sional soft­ware en­gi­neer. I ac­tu­ally started my soft­ware ca­reer as a Web de­vel­oper. Of­ten­times, the only soft­ware I'd use (a browser and a ter­minal) were gen­er­ally avail­able with any Linux dis­tri­b­u­tion.

What is a Distro?

A Linux dis­tri­b­u­tion (or distro) is a com­plete op­er­ating system built on the Linux kernel. It in­cludes the kernel, system li­braries, util­i­ties, and often a package man­ager to in­stall ad­di­tional soft­ware. There are many dif­ferent dis­tros, each with its own phi­los­ophy, package man­age­ment system, and user in­ter­face.

Ubuntu was the first Linux dis­tri­b­u­tion I used, and it soon be­came my daily driver. I used it for many years with the Re­golith distro . Under the hood, Re­golith is just a pre­con­fig­ured Ubuntu distro— pre­in­stalled with the i3 tiling window man­ager . The dis­tro's built-in util­i­ties— like a pop-up key­board shortcut legend— made it super easy to get started with i3wm.

The barebones Regolith desktop environment— configured with the i3 tiling window manager, the i3 status bar, and the ilia launcher.
The barebones Regolith desktop environment— configured with the i3 tiling window manager, the i3 status bar, and the ilia launcher.

The ability to cus­tomize the window man­ager and nav­i­gate vir­tual desk­tops and win­dows with key­board short­cuts was a game-changer. Using short­cuts to nav­i­gate the system cer­tainly fed my in­terest in Linux and made me feel like a system power-user.

RICE-ing

As someone with a back­ground in de­sign, the ability to deeply cus­tomize my system was an­other thrilling part of dis­cov­ering Linux. I quickly be­came a lurker on r/​unix­porn and learned about Linux RICE-ing (Race In­spired Cos­metic En­hance­ment).

RI­CEing is typ­i­cally as­so­ci­ated with the cus­tomiza­tion of cars. The term "RICE" is often used in a deroga­tory sense to de­scribe cars that have been mod­i­fied for looks rather than per­for­mance.

A RICE'd Corolla Sport GT-S coupé from T-Mobile's 1985  "Poser Mobile" advertisements.
A RICE'd Corolla Sport GT-S coupé from T-Mobile's 1985 "Poser Mobile" advertisements.

In the Linux com­mu­nity, RI­CEing doesn't nec­es­sarily carry the same neg­a­tive con­no­ta­tions. Linux RI­CEing refers to cus­tomizing and per­son­al­izing your desktop en­vi­ron­ment to make it vi­su­ally ap­pealing and func­tional. This can in­clude changing themes, icons, fonts, and even the layout of your desktop.

Desktop En­vi­ron­ments

By de­fault, Ubuntu uses the GNOME desktop en­vi­ron­ment. How­ever, there are many other desktop en­vi­ron­ments avail­able for Linux, each with its own unique fea­tures and de­sign phi­los­ophy:

From the TV show Mr. Robot (2015)
Desktop En­vi­ron­mentDe­scrip­tion
GNOME The de­fault desktop en­vi­ron­ment for Ubuntu, known for its sim­plicity and ease of use.
MATE A con­tin­u­a­tion of the classic GNOME 2 desktop, MATE is de­signed to be light­weight and easy to use. It is a good choice for users who prefer a tra­di­tional desktop ex­pe­ri­ence.
Plasma Known for its flex­i­bility and cus­tomiza­tion op­tions, KDE Plasma of­fers a modern and vi­su­ally ap­pealing in­ter­face.
Xfce A light­weight desktop en­vi­ron­ment that is fast and ef­fi­cient, making it ideal for older hard­ware.
LXQt An­other light­weight op­tion, LXQt is de­signed to be simple and easy to use.
Cin­namon A user-friendly desktop en­vi­ron­ment that pro­vides a tra­di­tional desktop ex­pe­ri­ence, sim­ilar to Win­dows. It's an adap­ta­tion of the GNOME DE main­tained for the Linux Mint distro.

Com­pos­i­tors and Window Man­agers

In ad­di­tion to desktop en­vi­ron­ments, Linux users can also con­figure dif­ferent com­pos­i­tors and window man­agers. Some of the func­tion­ality over­laps, but gen­er­ally these tools each serve a spe­cific role.

Window mangers (WMs) gen­er­ally con­trol how win­dows are dis­played on the screen and how they in­teract with each other— think of how you would ex­pand, min­i­mize, or drag a window in macOS or Win­dows. WMs can also handle window dec­o­ra­tions, vir­tual desk­tops, key­board short­cuts, tiling, and more.

i3wm

My fa­vorite window man­ager is i3. I love its quick-snap align­ment and re­cur­sive tiling me­chanics. It al­lows you to quickly and easily arrange win­dows on your screen, making it per­fect for mul­ti­tasking and lim­ited screen real es­tate.

Short­cuts make it super quick and help main­tain flow when editing text. i3 is a tiling window man­ager, meaning it au­to­mat­i­cally arranges win­dows in a grid-like fashion without over­lap­ping. Check out my dot­files for my i3 config and other goodies.

Com­pos­i­tors

Com­pos­i­tors are re­spon­sible for ren­dering the graph­ical ef­fects in a desktop en­vi­ron­ment. They can pro­vide things like window trans­parency and blur, shadows, an­i­ma­tions when opening or closing win­dows, and more. Some of the ones I've used in­clude:

Com­pos­itorDe­scrip­tion
Compton A light­weight com­pos­itor for X11 that pro­vides basic ef­fects like shadows, trans­parency, and back­ground blur.
Picom A fork of Compton that adds ad­di­tional fea­tures light an­i­ma­tion.
KWin Both a com­pos­itor and window man­ager that uses the Way­land window system pro­tocol and ar­chi­tec­ture at its core. It's the de­fault in the KDE Plasma desktop en­vi­ron­ment.
Mutter This com­pos­itor is used in the GNOME desktop en­vi­ron­ment.
Xfwm The com­pos­itor used in the Xfce desktop en­vi­ron­ment. It is light­weight and pro­vides basic ef­fects like shadows and trans­parency.

You'll no­tice that some com­pos­i­tors in­ter­face with X11 (the X Window System ) while others use Way­land . Way­land was in­tended as a re­place­ment for the X11 window pro­tocol and in­tro­duces some par­a­digm shifts in how the com­pos­itor is used.

Of the above, Picom was my fa­vorite choice (paired with i3, of course) be­cause I was able to get some Apple-level luxury looking blur and back­ground trans­parency ef­fects.

Screenshots of my RICE'd Regolith desktop environment that I posted on r/unixporn in 2021.
Screenshots of my RICE'd Regolith desktop environment that I posted on r/unixporn in 2021.

Launchers and Info Bars

Launchers are pro­grams that allow you to quickly launch ap­pli­ca­tions or per­form ac­tions using key­board short­cuts. They can be used to search for files, run com­mands, or open ap­pli­ca­tions without needing to nav­i­gate through menus.

Win­dows users will be fa­miliar with the Win­dows-key start menu, and macOS users will be fa­miliar with Spot­light. Linux has many launchers— some pre­in­stalled with the desktop en­vi­ron­ment.

On macOS, the Al­fred app was once a pop­ular choice. I also re­ally like Ray­cast for MacOS.

On Linux, there are many launchers avail­able. Most desktop en­vi­ron­ments will in­stall their own by de­fault. The latest Re­golith distro ships with the be­spoke ilia launcher. I quite like the Rofi launcher be­cause it's fast, light­weight, highly cus­tomiz­able, and has good com­mu­nity sup­port.

There are also many status bars avail­able for Linux. The i3 window man­ager comes with its own status bar (i3bar), but you can also use other op­tions like Polybar or Waybar in Way­land.

On macOS, I use a com­bi­na­tion of Aero­Space , sketchybar , and Spaceman to mimic i3 window tiling and short­cuts— with a status bar that shows the ac­tive desktop and other custom op­tions.

Distro List

So which Linux distro is the best? It re­ally de­pends on your needs and pref­er­ences. Some dis­tros are more user-friendly— they have a lot of fea­tures and con­trols out of the box.

Other dis­tros are more min­imal and re­quire more con­fig­u­ra­tion to get started. Some are de­signed for spe­cific use cases— like gaming versus hosting cloud ap­pli­ca­tions. Others still are de­signed for spe­cific hard­ware— like Rasp­berry Pi OS and the Rasp­berry Pi.

Un­der­standing the key fea­tures and philoso­phies of each distro can help you make an in­formed de­ci­sion about which one is right for you. Below is a list of some pop­ular Linux dis­tros that I've tried— along with my two cents.

NixOS

The NixOS logo

NixOS Foun­da­tion
https://​nixos.org/

This is a distro un­like most others you'll come across. NixOS cre­ates a spe­cial, im­mutable Nix store at /nix/store. Im­mutability means that the store cannot be di­rectly mod­i­fied. It will iden­tify each in­stalled package (and its spe­cific ver­sion) by a unique ID— in fact, it's a cryp­to­graphic hash of the pack­age's build de­pen­dency graph.

Nix is a purely func­tional package man­ager. You can save the state of your system and should be able to load the en­tire thing from scratch on an­other ma­chine. It's a bril­liant de­sign, but has a steep learning curve and re­quires you to adopt the Nix con­fig­u­ra­tion lan­guage and phi­los­ophy.

NixOS also pro­vides a suite of com­mands like nix-env and nix-shell to quickly swap be­tween en­tirely dif­ferent en­vi­ron­ments without needing to use yet an­other tech­nology to con­figure vir­tual ma­chines or vir­tual en­vi­ron­ments. You can in­stall, up­grade, and re­move system pack­ages and lan­guage bi­na­ries in any number of iso­lated en­vi­ron­ments.

XDG Config

A lot of Linux users might be fa­miliar with the FreeDesktop.org pro­ject, for­merly the X Desktop Group (XDG). The $XDG-CONFIG-HOME pat­tern spec­i­fies a way of con­fig­uring dot­files under the ~/.config/ di­rec­tory.

Un­like XDG, NixOS is a unique Linux dis­tri­b­u­tion that uses .nix con­fig­u­ra­tion files to func­tion­ally de­fine pack­ages. It is de­signed to be de­clar­a­tive, meaning you can de­fine your en­tire system con­fig­u­ra­tion in a single file or set of files. This should make it easy to re­pro­duce and share con­fig­u­ra­tions across dif­ferent ma­chines.

To me, NixOS is wizard-tier Linux. The con­cepts of atomic up­dates and re­pro­ducible sys­tems are super sexy, but in prac­tice I often found it very dif­fi­cult and te­dious to manage my pack­ages and con­figs. The ini­tial trans­la­tion to .nix was a daunting task. You'll need to take some time to rewrite your XDG-style config to .nix and gain a firm un­der­standing of the Nix lan­guage.

I have a lot of re­spect and ad­mi­ra­tion for those Unix wiz­ards who have the un­der­standing and ex­pe­ri­ence to use NixOS ef­fec­tively, but I don't think it's the right choice for be­gin­ners.

En­deav­ourOS

En­deav­ourOS is a user-friendly distro that pro­vides a great bal­ance be­tween ease of use and cus­tomiza­tion. It gives be­gin­ners easy ac­cess to the Arch Linux distro— a light­weight and flex­ible Linux distro that gives Unix power users a lot of freedom to cus­tomize their system.

Like Arch Linux, En­deav­ourOS uses the pacman package man­ager giving it ac­cess to a vast package ecosystem. Un­like Arch Linux, on first boot En­deavour pro­vides a graph­ical in­staller to con­figure a desktop en­vi­ron­ment along with the base system. This lets you get started quickly without needing to man­u­ally con­figure every­thing from scratch like you might on bare Arch.

The de­sign is sleek and modern, and it has a large com­mu­nity of users who pro­vide sup­port and re­sources. En­deav­ourOS is a great choice for anyone who wants to use Arch Linux without having to con­figure it from scratch.

Man­jaro

The Manjaro logo

Man­jaro GmbH & Co. KG (de­vel­oper)
https://​man­jaro.org/

Man­jaro is an­other user-friendly Arch Linux-based distro. It doesn't offer quite the same freedom as En­deav­ourOS— you can't se­lect the desktop en­vi­ron­ment from a drop­down. But it does a great job of pro­viding a sleek pre­con­fig­ured desktop en­vi­ron­ment.

It has a large com­mu­nity of users who pro­vide sup­port and re­sources. Sim­ilar to En­deav­ourOS Man­jaro is a great choice for anyone who wants to use Arch Linux without having to con­figure it from scratch.

The KDE Plasma desktop en­vi­ron­ment is the de­fault, but you can also choose from other desktop en­vi­ron­ments like Xfce and GNOME. Man­jaro also uses the pacman package man­ager, giving it ac­cess to a breadth of soft­ware in the Arch User Repos­i­tory (AUR).

Ubuntu

The Ubuntu logo

Canon­ical (de­vel­oper)
https://​ubuntu.com/

Ubuntu is a great choice for be­gin­ners and ex­pe­ri­enced users alike. It has a large com­mu­nity, ex­ten­sive doc­u­men­ta­tion, and a wide range of soft­ware avail­able. It's also one of the most pop­ular dis­tros, so you'll find plenty of sup­port and re­sources on­line.

It's good for a desktop en­vi­ron­ment, but it can also be used headlessly for cloud servers. Hard­core Linux users might bash Ubuntu for being too bloated. It does in­stall a lot of soft­ware by de­fault, but it's still a great starting point for anyone new to Linux.

Be­cause Ubuntu is based on De­bian , it has a large repos­i­tory of soft­ware avail­able. This makes it easy to in­stall and up­date soft­ware using the apt package man­ager.

Ubuntu is user-friendly, has a large com­mu­nity, and is easy to get started with. How­ever, it can be a bit bloated for some users, and the de­fault GNOME desktop en­vi­ron­ment may not be to every­one's liking. If you want to use KDE Plasma, you can in­stall the Kubuntu flavor of Ubuntu.

Re­golith

The Regolith Linux logo

Ken Gilmer and others (de­vel­oper)
https://​re­golith-desktop.com/

Re­golith is an Ubuntu de­riv­a­tive that comes pre­con­fig­ured with the i3 tiling window man­ager. It pro­vides a great starting point for anyone who wants to use i3 without having to con­figure it from scratch.

The base theme is well de­signed and min­imal— and you still get all the ben­e­fits of Ubun­tu's package man­age­ment and soft­ware avail­ability! It in­cludes a pop-up key­board shortcut legend, a be­spoke launcher, and a better com­pos­itor (picom).

I put Re­golith in the A tier. It's great for power users while still pro­viding the com­mu­nity sup­port of an Ubuntu distro. One down­side is that it doesn't have the backing of a large com­pany like Canon­ical, so it may not be as well sup­ported in the long run. How­ever, the com­mu­nity is ac­tive and re­spon­sive, and the distro is reg­u­larly up­dated.

Alpine Linux

The Alpine Linux logo

Alpine Linux De­vel­op­ment Team (de­vel­oper)
https://​www.alpinelinux.org/

Alpine Linux is a se­cu­rity-ori­ented, light­weight Linux distro. It uses the apk package man­ager (Alpine Package Keeper) and has a super small foot­print, making it ideal for run­ning on low-re­source de­vices or in con­tainers.

Alpine's de­sign phi­los­ophy is to keep things simple and se­cure. It uses the musl libc li­brary in­stead of the more common GNU C Li­brary (glibc), which makes it smaller and faster. Alpine also uses the OpenRC init system in­stead of sys­temd, which is a more light­weight al­ter­na­tive.

The Alpine Linux com­mu­nity is ac­tive and re­spon­sive, and the distro is reg­u­larly up­dated. It's a great choice for anyone who wants a light­weight, se­cure, and fast Linux distro.

A lot of its se­cu­rity is in­herent in its lack of bloat— by in­cluding fewer pack­ages by de­fault, Alpine re­duces the at­tack sur­face of the system.

Using Dock­erHub as a ref­er­ence, the latest Ubuntu re­lease (25.04, Plucky Puffin) has 3 medium- and 5 low-severity CVEs at the time of writing. Alpine Linux (3.22.1) has 0. Ubuntu in­cludes 122 pack­ages in its SBOM while Alpine in­clude 20.

I fre­quently reach for Alpine Linux when I need a light­weight con­tainer image for a Dock­er­ized ap­pli­ca­tion. How­ever, it may not be the best choice for be­gin­ners or those who want a more user-friendly desktop en­vi­ron­ment.

Void Linux

The Void Linux logo

Void Linux Team (de­vel­oper)
https://​voidlinux.org/

Void Linux might be de­scribed as an indie distro— it's not based on an­other Linux distro. It's an in­de­pen­dent dis­tri­b­u­tion de­vel­oped en­tirely by vol­un­teers.

It's a unique distro that uses the xbps package man­ager (X Bi­nary Package System). xbps is also be­spoke soft­ware and fea­tures de­tec­tion of in­com­pat­ible shared li­braries and de­pen­den­cies while up­dating or re­moving pack­ages.

It uses the runit init system in­stead of sys­temd, which is a more light­weight al­ter­na­tive. Like Alpine Linux, it also sup­ports the musl libc— as well as the GNU libc im­ple­men­ta­tion.

Void Linux is a great choice for anyone who wants a light­weight, fast, and simple Linux distro. It won't have the same sup­port as Ubuntu or an­other big-name distro, but it still has a ded­i­cated large com­mu­nity of users who pro­vide sup­port and re­sources.

Red Hat En­ter­prise Linux (RHEL)

The Red Hat logo

Red Hat (de­vel­oper)
https://​redhat.com/

I've only used RHEL in a pro­fes­sional set­ting, but it's worth men­tioning here. RHEL is a com­mer­cial Linux dis­tri­b­u­tion de­vel­oped by Red Hat. It's de­signed for en­ter­prise use and pro­vides a stable and se­cure plat­form for run­ning ap­pli­ca­tions.

Al­though, in my ex­pe­ri­ence, I've found it to be more bloated than Alpine Linux or Void Linux and pro­duces more vul­ner­a­bil­i­ties in a CVE scan. It uses the dnf package man­ager (Dan­di­fied YUM) and has a large repos­i­tory of soft­ware avail­able.

Red Hat is the base for many other Linux dis­tri­b­u­tions, in­cluding CentOS, Fe­dora, and Rocky Linux. It's a great choice for anyone who wants a stable and se­cure Linux distro for en­ter­prise use.

Wrap­ping Up

This is just the tip of the ice­berg. I know there are many other distro hop­pers out there who have ex­plored even fur­ther reaches of the Linux uni­verse.

Distro hop­ping can be a fun and re­warding way to learn about Linux in all its glo­rious shapes and forms. Each distro has its own unique fea­tures, philoso­phies, and com­mu­ni­ties. By trying out dif­ferent dis­tros, you can find the one that best fits your needs and pref­er­ences.

I'm leaving out a lot. De­bian is at the heart of Ubuntu— and many other dis­tros. Fe­dora , Linux Mint , and Pop!_OS are all great dis­tros that I haven't had the chance to try yet. I though I'd never see the day, but now I'm pri­marily using macOS for my daily driver.

Let me know your distro hop­ping sto­ries in the com­ments. What dis­tros have you tried? Which ones are your fa­vorites? Do you have any tips for be­gin­ners who want to get started with Linux?

Bonus Distro List

Tem­pleOS is a unique op­er­ating system that was cre­ated by Terry A. Davis. It is a light­weight, 16-bit op­er­ating system with a unique pro­gram­ming lan­guage called HolyC, which is used to write pro­grams for the OS. It is re­li­giously themed and has a unique user in­ter­face that is rem­i­nis­cent of early com­puter sys­tems.

Tem­pleOS is not a prac­tical choice for everyday use, but it is an in­ter­esting pro­ject that show­cases the cre­ativity and in­ge­nuity of its cre­ator.

Hannah Mon­tana Linux is a parody op­er­ating system that was cre­ated by a group of de­vel­opers as a joke. It is based on Kubuntu and in­cludes a number of fea­tures and themes based on the pop­ular TV show Hannah Mon­tana.

While it may not be a se­rious choice for a daily driver, it can be a fun way to learn about Linux and its ca­pa­bil­i­ties.