My Archlinux setup

I was playing with Archlinux in the last 3 or 4 years and last year I decided to reboot my configuration files and start using Xfce.

Talking to Fabio Akita about my Archlinux tunning, I heard that I should be posting about that. That’s true, so I decided to start writing it. I wrote in March and it was in draft form since then, so it’s time to release it. :)

BTW, Fabio already did that, but I will post about my setup anyway.

Desktop Environment

I was using Gnome before deciding to reboot my workstation. I met @marcosnils at Gophercon last year and we had some chatting about window managers. I’m a big fan of tiling and was planning to go to a tiling window manager again. The problem with tiling window managers is the amount of configuration you have to create in order to have your laptop in a fully functional mode. I was looking for something between a window manager and a desktop environment, something composable with some support for tiling. And then, he shows me his laptop with Xfce running.

That doesn’t look like the Xfce I know. It was pretty smooth and with many features I did not know. Then, I decided to give Xfce a try.

At first, it was horrible but functional. I could compose its packages to only install what I wanted and almost everything was working out of the box. That’s what I was looking for. So it’s time for themes, fonts, bars and so on, just to make it beautiful.

Here is my results:

Xfce screenshot

It looks good to me. :)

Xfce has shortcuts to do what I like to do with tiling: vertical and horizontal splits. Here is an example of me writing this blog post on a split screen on my ultrawide monitor:

Xfce tiling example

Keyboard shortcuts for different types of screenshots were really useful as well. I did not know this feature, but it was probably my fault. :P

Window manager

I was trying different window managers at the time, so I decided to give i3 a try. It looks very good if you like (or have the time) to configure and tune it.

As I was trying different things, why not to try Wayland as well? So I installed sway instead of i3 to use it with Wayland. It was an interesting test. My configuration files work with i3 and sway currently.

I’m usually using Xfce but sometimes I log in with sway to take advantage of the tiling in a different way.

Managing configuration files

It’s possible to use configuration managers for this task (like Salt, Ansible, Chef solo and so on) but I preferred to use a simpler way.

All configurations to recreate this environment is available in my dotfiles repository. It uses a project called dot-install created by Diego Souza. It is a simple bash script that copies the files to the correct places, BOOM, done. I like it.

I can create bundles to apply the same configuration files to more than one computer. Some files have to change because of network interface names and so on, but the structure is the same.

Kernel

I’m trying different kernels. The first one (and easier) was linux-zen. It is available in the community repository of Archlinux. I really recommend it in case you don’t need (or want) to use Docker with support to overlayfs.

I was also compiling the rc releases of the Linux kernel whenever possible, so I could try to contribute in case I found something weird, but as it takes a lot of my time, I decided to give it a break for some time.

But the best one until now is the linux-ck. It is the Linux kernel with the patches from Con Kolivas. There is a different scheduler running and some other improvements. It was made with desktop performance in mind (just like linux-zen, that uses the same scheduler from linux-ck).

linux-ck has its own repo, in case you don’t want to compile it yourself from AUR. Just add this line to your pacman.conf:

[repo-ck]
Server = http://repo-ck.com/$arch

Just be aware that the link quality is awful. You have to retry it many times to get the file downloaded. =/

Tunning

There are some good tips to apply on your Archlinux, but I will not just copy & paste it here. Please refer to Fabio post, since I discussed with him about it and we applied almost the same procedure.

The I/O related tunning are the most recommended.

Package manager

There are some addition package managers available for Archlinux, so you can deal with AUR easily. Fabio uses pacaur but I prefer to use aura-bin.

I know guys who prefer to use yaourt but I don’t think it has good defaults.

Installing it from scratch

I’m that kind of Linux user who likes to install new distributions or rebuild the system from time to time, so I created my own ways to do it faster.

I decided to not automate the whole Archlinux installation because it would take more cost than bringing benefit. The partition of the disks and initial installation I do manually and then I use my own scripts and configuration files to get the same environment I had with just a few commands.

The first step is to install all packages needed to my day-to-day tasks. For this matter I have this script. It executes many commands to install all packages I need.

I run this script every time I decide to reboot my computer. So, instead of running systemctl reboot I run update-and reboot and it reboots with the new packages installed.

Conclusion

Since I started used Linux I’ve gone through Kurumin, Slackware, Ubuntu, and Archlinux. I formatted my laptop many times and kept using Archlinux for the past years, it’s the best Linux distribution for my use case.

If you’re looking for the best cost/benefit for customization and effort doing it, I really recommend Archlinux + Xfce. You will miss some new technologies on the WM side (Wayland…) but it worth the trade-off.