Revisiting Desktop Linux: Drowning in the Deep End
Revisiting Desktop Linux: Drowning in the Deep End
Embark on the start of a new journey in Linux with our shiny new Dell XPS 13". Let's get started.
Join the DZone community and get the full member experience.Join For Free
A few years ago, I wrote about attempting a switch from my 20-year relationship with macOS to Windows and Linux. I ended up switching back to macOS, but as I was joining the recent throngs of many who felt that Apple was abandoning power macOS users, I was determined to try again.
With recent announcements of the new MacBook Pro 16", the Mac Pro, and Catalina not being as iOS-esque as we all expected, many of our worries are now less so, but still, there were other justifications for a change at the back of my mind.
You may also like: Top Five Free Courses to Learn Linux in Depth
Microsoft is doing way more for developers than Apple. While these efforts are not always so visible in Windows, features such as WSL, and remote development in Visual Studio Code are powerful for developers.
I have become increasingly passionate about making software explainable, usable, and accessible, and my day job as a tech writer sees me attempting to apply these beliefs regularly. The draw of using as much open-source software as possible, and being able to contribute back to improving those projects is appealing to me. I also had a further desire to see how far I could go using an almost open-source stack (ignoring tools I have no choice but to use for work).
One of my clients mentioned I was entitled to a work laptop, so it seemed a perfect opportunity to request a shiny new Dell XPS 13" and start the Linux (re)experiment, with my trusty (keyboard issues aside) MacBook Pro as a backup if need be.
Distributions, Distributions Everywhere
Windows and macOS are easy decisions: you install, and off you go. Linux has many, many flavors and options, where do you start? I wanted a distribution that prioritized user experience (and equally, a welcoming contribution community), was (in my opinion) pleasant to look at, and reasonably flexible with install sources.
For me, it came down to two choices (I’m sure there were others that I missed), Elementary OS and Manjaro, based on Ubuntu, and Arch Linux respectively. Both are quite different, but mostly matched my requirements, with Elementary providing something of a familiar UI for Mac users, and Manjaro providing constant up-to-dateness thanks to the Arch underpinnings.
I downloaded the ISO images, made some live boot USB sticks, and off I went.
“It Just Works”
Recently, I had seen more comments from Linux n00bs and aficionados alike saying that many Linux distributions now “just work” better than they used to be, and this was encouraging to me as my last experience involved constant visits to search engines, and a re-installation every time I stuffed something up.
Sadly, this statement turned out to still not be accurate. I think I reinstalled both Elementary and Manjaro about five times each, also accidentally wiping out Windows (which I wanted to keep around) until I ended up with an environment that worked and I was happy with.
I get it, Linux is largely community developed, and there are so many potential variants of hardware, it’s near impossible to guarantee everything works without some configuration. I guess I had thought that the Dell XPS was pretty widely used by Linux users and that because Dell even produces an Ubuntu variant, it must be a safer bet.
Well, it turns out, and this was confirmed by a Linux-using colleague, “Your machine is too new”. Hmm, well, be as it may, but I can’t help what’s available in the shops. However, this statement led me to solve some of my first issues by updating the Linux kernel. This was corroborated by the fact that Manjaro worked (more-or-less) out of the box, and Elementary didn’t, as Manjaro ships with a more recent kernel, with better support for newer hardware.
During this step, I became confounded by how to get Linux and Windows to dual boot, and had to reinstall both varieties of Linux several times, in the process breaking Windows, and just wiping the disk instead. Most of this seemed to revolve around Secure boot, UEFI and RAID/AHCI disk settings. Despite reading many blog posts and Stackoverflow posts alluding to the fact that it “should just work”, but I found that each Linux distribution handled secure boot differently, and I’d have to keep enabling and re-enabling it. This was the same with disk settings, and I had to keep changing settings back and forth to get things to install and work.
Hands-on With Elementary OS
Finally, after getting the settings correct for Elementary OS, and updating the Kernel, so my Wi-fi and graphics card worked, I stuck with it for a couple of days, installing a few applications I regularly use. Now, there’s an effort within some Linux communities to standardize application installation methods, instead of the mixture of .deb, .rpm, snap, flatpack and install-it-yourself-archive-files that exist. But in true Linux fashion, there are so many options open to you, it’s hard to know which one is best, and they all bundle dependencies in different ways. Some are officially maintained, others are community maintained, are at different versions, some work immediately, and others don’t without research.
Elementary is a solid Linux distribution, with an eye on user experience, a good community, it’s own application store (which adds to the installation confusion) that also has commercial options, and once I got my hardware working, it was reliable.
But I dunno, I didn’t gel with it, and for some reason, my brief experiences with Manjaro grabbed me more.
Hands-on With Manjaro
Wiping my hard drive and reinstalling an operating system for the umpteenth time (dual-booting Linux distributions doesn’t seem to be a common requirement). After a few installation errors that I think were mostly related to partition deletion, I was back with Manjaro, working with my hardware right out of the box. Again, I wasn’t unsure as to the “correct” way to install applications that I commonly use.
Visual Studio Code (VSC) exists in the community repository of the AUR, but I wasn’t sure if it missed any features. VSC has a snap for VSC, but it wouldn’t open after I installed it. A quick search discovered that the Snap fails to install necessary dependencies on Arch Linux, so after installing those first, the Snap worked.
Brave also proved problematic to install, as their official docs recommend you don’t use the outdated Snap and they don’t have instructions outside of Debian and rpm packages. I then found myself lost in threads revolving around people’s opinions on the Brave project rather than on how to install it. If the inclusion of a project in the “official” repository was a matter of personal opinions of maintainers, then that seems to go against the appeal of Linux to me, but hey, whatever. Either way, I found an up-to-date binary in the community repository, disabled hardware acceleration (which seems to be an issue on any Chromium-based browser under Linux), and finally, I had the two tools I most use.
After all this, I had most things I needed to get started, and so far, I have found the experience mostly stable and usable. My external USB-C/Thunderbolt 3 screen works fine, and so does my Keychron USB-C/Bluetooth keyboard, my Apple mouse drops connections a LOT, but it does that on my Mac too, albeit, not as often. Battery life is fantastic (though I haven’t done much heavy work yet), and Linux seems to be able to handle dual and high-resolution screens better than before (so far). I need to do a bit more installation and configuration before it becomes even a part-time daily driver, but I am excited to try more.
Honest User Experience
The main point I want to make is around the communities selling of the Linux user experience, and it somewhat relates to my day job, attempting to make technical, developer-led projects understandable by others. Those on the inside of projects tend to think that using their project is “simple”, that “you just need to do x”, and “it works for me”. We all know this isn’t the truth from our own experiences, but we continue to do it.
I understand that (some) Linux distributions want to attract new users by promising it’s an easy “just works” experience, but this isn’t true in many cases, and it seems disingenuous to me. If even an install process can stall and fail, or the steps right after it, without searches online in esoteric forum threads that often descend into flame wars, then what is a hapless, naive n00b supposed to do?
I started down this path because I wanted the ability to contribute to everything I use. Maybe a beginner-friendly guide to common problems is a place to start, or even trying to add some of these to installer steps. I still have that nagging feeling at the back of my mind about whether this is what a lot of the Linux community wants, or if due to the nature of Linux it’s even possible to do without a lot of contradictory, misleading, and lengthy disclaimers. Watch this space, and I’m going to dive in.
With everything seemingly working, I decided to take the laptop to work for a couple of days. My mouse disconnected so many times it was unusable. Other applications I need for work such as Discord, Gitter and Slack, wouldn’t launch, and I became so unproductive, I returned to my Mac.
It was then I wondered if I had dived too much into the deep end and thought it was time I started back at square one first. I wiped the laptop again and installed Ubuntu. And that adventure is the subject of my next post…
Opinions expressed by DZone contributors are their own.