Who said the Linux desktop is dead?

I recently moved from Mac OS X and a MacBook Pro 13 Retina to Windows 8.1 running on a Microsoft Surface Pro 3. While the Surface Pro 3 is a beautiful machine and the hardware is second to none, I wasn’t really satisfied. I felt like my productivity went from 100% to 80%. Even with Windows 10, although a major improvement, my whole work-flow suffered.

Naturally, I took a second look at Linux. I have been trying to run Linux as my primary machine for some time now, but either some piece of software was missing or the system itself never worked with my hardware.

You might ask, why I switched from Mac / Windows in the first place and the reason for this is manifold. However, one reason is that I don’t trust Apple anymore. Apple has become complacent and their interest is clearly to cage people inside the Apple garden. Furthermore, it seems that they only care about the next big shiny iPhone version and how to play music now.

In any case, this time around I was ready to work with Linux and make it work. For my Linux machine I opted for the Dell Xps13. The Dell is a beautiful machine with its small form factor and gorgeous display with a resolution of 3200×1800 (frankly, the latest Macbook should have been the Xps13). The Xps13 comes with a i5 or i7 CPU, 8GB Ram, 128/256/512 SSD. Did I mentioned that the screen is gorgeous?

My Xps13 came with Windows installed. However, installing Ubuntu was a no-brainer. Once installed everything worked out of the box (Dell up-streamed all drivers to Ubuntu 15.04). WiFi up and running, Trackpad scrolling and everything else worked without any configuration. In short, it simply works.

Of course, getting the system up and running is only half the work. Applications is were it is at. So, let’s see if Linux can do everything that I need.

Development
I write my code in Sublime Text 3 and the app itself and all packages run without problems. Needless to say, but nodejs, MySQL and MongoDB install without a hitch. Robomongo, a MongoDB UI, works as well. So do many other tools. It’s Linux after all. The beautiful thing is that many installations are just a command away.

Email, browsers and social media
Obviously, Browsers like Google Chrome and Firefox are available as well. Just like in Mac and Windows, Chrome is a resource hog, so I like to do my browsing on Firefox. With sync activated, all my extensions get installed automatically.

As I use Google Apps, I do my email in the browser as well. Honestly, no email app comes close to it (and I’ve tried many). Of course, your need might be different. I’ve heard good things about Geary and might try it out one day. Thunderbird seems to work for others. Gmail in Firefox has a peculiar behavior that the font size is very small. The workaround is to go into the settings and set the minimum font size to 13 pixels or higher (can be found under Content/Advanced Settings).

If you are looking for a native Twitter client however you are out of luck. Sure, there are some twitter clients, but they are either ugly, outdated or if they work they lack features. I’m currently switching between Hootsuite and twitter on the web. Though, I have to say that I use my phone primarily for tweeting.

Office and Presentation
I’m quite surprised about the latest LibreOffice 5 release and really like it. They’ve done a great job with it. Additionally, I have a Office365 subscription and of course Google docs is just a click away. However, I see myself opening LibreOffice quite a lot these days (I’m writing this in LibreOffice right now).

Screenshots
On the Mac you got Skitch, on Windows Snagit and on Linux…. Shutter. Shutter is awesome and has all the features of Snagit. You can drag and drop the screen shot right into Gmail or any other app. A major improvement compared to Linux some years ago.

Graphics
While Linux doesn’t have Photoshop or Illustrator there are Gimp (no, I’m not saying it is good) or MyPaint. For my occasional use, MyPaint is more than enough. I’ve seen people use their Wacom Tablets with MyPaint out of the box.

Music
I have to be honest, I was a bit worried about music. See, music is a big part of my work-flow as I almost always listen to music while coding. I have a big collection off-line and I used iMatch to have it in sync with my other i-devices. For exploring, I subscribed to Rdio (never got the hang of Spotify).

However, independent of the operating system, I always felt that there is some disconnect here. Why can’t I match my tracks off-line with the one in my streaming service? Why do I have to have one set off-line and one set on-line?

After some exploring, I have found that Google Music (yeah who would have thought that) fills my requirement perfectly. The service allows me to upload all my music, well 50,000 records, and matches them up perfectly. I can download them or listen to all my records, including a music library of over 30 millions records, on any device any time. Additionally, I can complement my library with missing albums. The search, in Google like manor, shows me the artist(s), my library, radio stations and all music videos of the found artist(s).

The one thing that really convinced me, was that the prediction engine is close to perfect. Finally, I can hit “radio” with a good feeling. Combine this with unlimited streaming, unlimited skipping, your collection available anywhere, a close to perfect radio algorithm and you got a winner at hand.

Backup
I love Arq on the Mac. It is one of those apps, you completely forget that it is there. Set and forget, and it always works. Unfortunately, there is nothing like that on Linux. The closest I have found is Crashplan. I find the UI a bit clunky and if you want cloud storage you have to use a subscription, but it comes close to Arq.

Virtualization
While VMWare workstation is available on Linux, I opted for VirtualBox. It is free and especially compared to the $149 price tag for VMWare. I simply don’t see a justification for the $149. VirtualBox, just like many other applications on Linux, works out of the box. I run Windows 7, 8 and 10 on it and can do everything I need.

Web Conferencing
I use GoToMeeting. However, there is no Linux support available. They do have a HTML5 viewer, but in my test it hardly worked. I could hear my party but they were unable to hear me. Support told me that this is still beta and they are working on it. As an organizer, I’m left out of doing any web conferencing on Linux. No good feeling here.

I also tried WebEx. While I could at least converse with my parties, I did not see their screen share. Not sure if the reason is the dual monitor setup here, but again WebEx support is unable to solve this. Other tools, like join.me, do not support Linux at all.

It looks like until GoToMeeting or WebEx are supporting Linux 100%, we have a sorry-state on Linux web conferencing. I mean, how hard can it be to get the Java version right or provide a first-class HTML5 experience? Google can do it with Hangouts, why not GoToMeeting and Webex?

Linux windows managers
Much can be said about Linux Windows Managers. Some like Unity, some hate it, some like Gnome but only version 2 and some simply choose a tiling manager like i3.

Point is, that Linux gives you a wide variety of options to configure your system. Luckily, it’s easy to test different windows managers. All of them are a simple “apt-get install (window manager)” away and you can chose during sign in what window manager you want to run. While, at first this a bit confusing, I appreciate this tremendously now.

That said, I’ve tested Unity, Cinnamon, XFCE, i3, AwesomeWM, Enlightenment and some others. For my needs I found XFCE to be at a perfect spot. It provides me with a lot of configurations to adjust my desktop while at the same time using little resources. Whereas in Unity, the memory was almost always used up and sometimes even used swap space, with XFCE I constantly have 2 – 3 GB free memory. This alone, is a reason for me to switch the window manager. Second, but very close is Cinnamon. From all the (current) window managers, I think that Cinnamon gives you the most eye-candy.

About the Xps13 specifically

Screen Resolution
While the 3200×1800 resolution is great, some Linux Windows Managers can’t scale properly. I mean, there is a big improvement over the last years, all major Window Managers show some sort of scaling option, but they still have to go some way to make it perfect. Among Ubuntu Unity and XFCE 4.12, Cinammon 2.6.x works the best on both the Xps13 screen and if used with another display (multi-display mode). Another option is to simply change the resolution to 1920×1080 and/or change the DPI (both Cinnamon and XFCE give you the option to change the DPI in the UI).

Bios Firmware Update
Bios upgrades can be done in Linux. Simply download the update from the Dell website and move it to /boot/efi. Boot into the Bios (press F2, some say F12) and choose “Bios Flash Update”. Big shout out Dell for making this possible. With this option, I’ve removed Windows on the Xps13 completely.

Webcam
I get that the Webcam doesn’t fit in the top part of the screen, but putting it in the bottom left hand corner makes it seem that this was just an afterthought. The Xps13 webcam lets my audience know some of the unflattering parts of my face more than it is my intention. Dell would have better been off, proving an external webcam than what they did here. Though, this is the only complain about this machine.

In closing, Linux works perfectly on the desktop. For a developer, especially a Web-Developer, Linux offers all the tools needed and then some more. For me, 2015 is definitely the year of Linux on the desktop.

If you have anything to add, please let me know in the comment section.