Switching from Ubuntu to Manjaro

I surprised myself switching off of Ubuntu to Manjaro for my primary computers.

I’ve been a user of Ubuntu for many years. It is a wonderful desktop platform. Ubuntu made Linux on the desktop easier by having a straight-forward installation, including necessary drivers, and creating an OS to compete with the Windows and Mac duopoly.

Even though I’ve used Linux for around 20 years, I appreciate the simplicity of Ubuntu. I futzed enough with drivers and conflicts years ago, now I just want my system to be stable and work.

That’s why it’s surprising I switched off Ubuntu, if you want stable, Ubuntu LTS is it. Hardware vendors, such as Dell and System76, adopt Ubuntu for its stability. The LTS versions are supported for five years, even longer if you pay.

So why did I switch?

I’ve heard about Arch Linux and dismissed it away as a super user tool. It sounded like a system for people who do want to futz with things, a binary version of Gentoo. I had plenty of painful memories of Gentoo and it’s build-everything-from-source mantra. Binaries are better, but still sounded like a lot of hassle to get started.

With the last upgrade to Ubuntu 19.04, the Peek GIF recorder broke. At first it was a minor annoyance, I switched to using asciinema for tutorials, but sometimes you need a good animated GIF. Peek installs using a custom PPA, that had the incompatible package, and I didn’t want to hassle with another method to install.

Even after all these years adding a new PPA still trips me up.

Another pain point, Ubuntu is becoming fragmented on where to pull software from. Software is available in the main repository, some in Snap, and other in PPAs. Plus, a Snap backlash has already started and Flatpak is becoming another option.

This fragmentation is just a bit of annoyance but wasn’t quite enough to switch, yet.

A rolling release is software released when a new version is available, not on a set schedule.

I wanted to test configs from my vim tutorials in Neovim. The version of Neovim distributed in Ubuntu is older than I needed, and the core distributes in yet another format, the AppImage binary. AppImage is alright, since its just a binary but it got me thinking about Arch again and its rolling releases. The freshest of fresh software.

In SAT terms, Manjaro is to Arch, as Ubuntu is to Debian.

While a few of these annoyances piled up, it also happened, I got a new laptop from work, so had my old one to play with. I decided to try out Manarjo instead of Arch. Manjaro builds an easier more complete experience on top of Arch.

Manjaro uses a set of repositories that contain a larger pool of software, so far everything I’ve needed has been available and at a more current version than the latest Ubuntu.

Desktop Environment

My preferred desktop environment is GNOME. I tried out XFCE and i3 versions of Manjaro, but too much setup, poor high-dpi support, and in my opinion neither were the same polished and complete desktop environment as GNOME. My dream is GNOME desktop with i3 managing windows, I use gTile extension which gets me close enough.

Since the desktop is really the primary interface to the OS, after installation the difference between using Ubuntu and Manjaro is negligible. Manjaro has a different default themes and icons, that make it a nice experience, but that probably has more to do with the change from what I was familiar with.

Manjaro includes a few extras, like default installing Tweaks and some other niceties. I was surprised I liked it so much trying it out, that I ended up switching my primary desktop too.

Package Management

The biggest difference between the two operating systems is the package management. Manjaro uses the Arch tool pacman that pulls from a set of frequently updated repositories.

Upgrade System

pacman -Syu

Search for Package

pacman -Ss query

Install Package

pacman -S pkgname

Use --needed to prevent pacman from reinstalling an already installed package.

Remove Package

pacman -R pkgname

Auto Remove

Pacman doesn’t have the same autoremove command that apt. It requires two commands to remove dependencies that are no longer needed, though these can be combined into a single command-line, see below.

First, the query to list orphan packages, those installed as dependencies but no longer required:

pacman -Qdt

You can combine the query with the remove command, using the following:

pacman -Rns $(pacman -Qdtq)

Using the -Rns flag will recursively remove all packages and their associated config files.

Arch User Repository (AUR)

AUR is a vast repository of user created packages, it can be though of as all the Ubuntu PPA’s rolled into one repository. There are various tools to work with the AUR.

I use yay – yet another yogurt. It is a popular one and written in Go so it must be good. You can install using pacman -S yay

See yay --help for full usage, but the commands mirror pacman.

System Configuration

Here are a few miscellaneous items I’ve run into which are minor differences between Manjaro and Ubuntu.

Crontab on Manjaro

Manjaro does not have the cron service running by default. It is installed, and you can add a crontab entry, but it will not run without the service. You can enable and start cron using:

systemctl enable cronie
systemctl start cronie

Printer Setup on Manjaro

I use a Brother HL-3170CDW series wireless printer. Brother does distribute a driver for Linux, but in an .rpm or .deb format.

I won’t send you down the rabbit holes I ventured in, the solution ended up being to simply to use the AUR driver.

yay -S brother-hl3170cdw

If you use a Brother printer, use yay -Ss brother to search for other available printer drivers in the AUR, or search for your manufacturer or model.

Additionally, the auto-registration of the network printer name did not get setup properly. I read a few things about dynamic and multicast dns (mdns) but the simplest solution was adding an entry to my hosts file using the IP address for the printer. For me I added the following to /etc/hosts, your network settings and printer name will likely be different:

192.168.86.228 BRW54137934776

TLDR;

I switched from Ubuntu to Manjaro, overall not a big change, but it’s nice.

Ubuntu, don’t worry you’ll still be in my life on my servers and WSL.