New Computer 2020
I have only used laptops for the last ten years or so, primarily because I used to live in a very tiny apartment where I would actually struggle to fit a desktop computer. Now I find myself with slightly more space so I have been purchasing parts over the last few months. In May in finally had all the parts and built my first desktop computer in ten years. I've been using it for quite a while now and figured I would do a short article on it. It's not just the hardware itself that is interesting, I have also decided to go with a new display server on Linux, along with a new window manager, this in itself offered a few challenges and might be interesting for Linux enthusiasts.
Since this was my first desktop in so long, I decided to go for some high end hardware. The idea is also that I will not need to replace components in several years, hopefully. Links for some of the hardware below, all links below open in new tabs.
- Motherboard: Asus ROG Zenith Extreme Alpha
- CPU: AMD Ryzen Threadripper 2950X
- GPU: MSI Radeon RX 5700 XT GAMING X
- PSU: Corsair HX1200i, 1200W
- RAM: Corsair Vengeance LPX DDR4 2666MHz, 32GB
- CPU cooler: Corsair Hydro H115i RGB Platinum, Water Cooler
- SSD: Samsung 970 EVI Plus 2TB, NVMe
- Case: CoolerMaster MasterCase H500M
I specifically went for an AMD GPU over Nvidia because I want to use the open source driver on Linux. AMD actually provides some help for the development of open source drivers, unlike Nvidia which does not seem to care at all. Using open source driver is required in order to ensure that I can use any window manager on the new Wayland display server on Linux.
I actually had some stability issues at first. I was running BOINC for hours, utilizing the CPU to maximum, which resulted in the computer hard crashing a couple of times. However, after some kernel updates, as well as microcode updates I have not had any more issues.
The GPU also caused me some issues, where the whole display server would crash while I was playing a graphics intensive game. This was also something that only happened a few times and after an update to the open source driver, I have not experienced this problem any more.
Overall, the hardware is performing beautifully and there are no issues running Linux on this. I am getting very nice performance in games, which I do want to point out. I didn't bother getting any pictures of the hardware since I'm not really a hardware person.
This is the part I enjoy the most. As always I installed Arch Linux on this system and I am running the testing repositories for Arch. The most common display server on Linux is Xorg, which is what I was using, with the i3wm window manager. I wanted to try out Wayland in the past, but since I was on Nvidia cards in the past I was restricted to Xorg. You can run Wayland with Nvidia's proprietary driver, but only Gnome and KDE support that as far as I know. I am not interested in running those desktop environments, which is why I waited with trying out Wayland until now.
The window manager I decided to use is Sway, which is made to be compatible with i3wm config. I was considering to simply copy over my old config, but I instead decided to start from scratch and configure everything from the ground up. I am actually using a fairly default config for Sway with only a few minor modifications. The one thing I really liked about Sway is the highly configurable Swaybar. It's a status bar that only shows the time by default. You can configure it to show anything you like, all it takes is a script that prints to stdout. At first I wrote a simple shell script for the purpose, but as I realized I wanted to display if there were updates to my system, which requires my to query one of the Arch Linux mirrors, I realized I would need to use caching as I could not keep querying the mirrors every second. So I wrote some Python code to handle this. Anyone interested in it can find it on my github: get_stats.py
Another topic that has been of interest to me is security, and I saw this as a good chance to implement extra security measures from the start, as well as teach myself more about computer security in the process. But enough of these things, time to display how my desktop looks now.
With a web browser and terminal open it looks like this:
Overall, it is not very different from my old i3wm desktop, and I have only made a few changes to the applications I prefer to use. I use the Alacritty terminal now instead of urxvt, and I am now using mpv directly instead of smplayer for videos. But otherwise there are not really many changes. I am still on a tiling window manager with a very minimal environment. I primarily rely on command line programs instead of graphical programs.
Since I have a pretty decent CPU on this system, I decided to also enable compression on my filesystem. It has saved me over 120GB in storage, while not have any effect on performance from what I could tell. I can't deny that it's a lot more fun to work with my computer when it can handle a considerably larger workload than my previous systems.
The one real issue I experienced with running Wayland instead of Xorg, is that a few games do not seem to handle the mouse properly. I tried out Arkham Knight, and I could not use the mouse in the game menu at all, thankfully you can use the keyboard to fully navigate the game menu, including the in-game map and skills. But there was one other game I have tested so far that had real issues, Spellforce 2. In most strategy games you can select multiple units by dragging a box around them. This simply does not work in Spellforce 2 when I am on Wayland. So for this game alone, I decided to launch it fullscreen in X with no window manager or compositor.
But apart from this, Wayland works really well and I am really happy with Sway as well as a window manager.