The Goal

Since my first encounter with Linux, around 2000, I made several attempts to adopt it as a real and productive desktop environment for the enterprise.

However, for a number of practical reasons, after a while (some days or weeks), I always resigned and got back to Windows.

Every time there were problems here and there that accumulated one after another and made me think “why on the earth I keep on trying to switch to Linux when I just don’t have all these problems with Windows?”.

The Problems

Which problems? Well, sometimes problems with hardware management (wifi connection, unrecognized USB printers, problems with multiple monitors with different resolutions, HiDPI monitors, etc..) while others with software (Skype missing features or bad conversation quality, dealing with advanced Excel, Word or Powerpoint documents received from colleagues or customers, Windows-friendly VPN clients needed to connect with customers, the forever missing Google Drive client for Linux, the Eclipse visual designer (WindowBuilder) half broken and a number of Windows utilities, for editing or finding files and contents, for capturing screen areas, for analyzing disk usage, taking notes and so on, that I was just accustomed to and for whom I wasn’t able to find Linux effective counterparts.

Why?

So, after all this, why one should still keep on trying and use Linux? Here are some reasons:

  1. it’s free
  2. it’s open source
  3. it’s powerful
    http://www.omgubuntu.co.uk/2017/11/linux-now-powers-100-worlds-top-500-supercomputers
  4. it’s highly customizable
  5. Windows license policies are becoming more and more locking, e.g. see here
    • https://www.cio.com/article/2949626/windows/the-takeaway-the-devil-in-the-details-of-the-windows-10-license.html
    • https://youtu.be/JE4SwkJ0Fys?t=206

Latest experience

This post is about my latest experience in switching from Windows to Linux. It’s more than a year now that I am using Linux as desktop daily on several projects, sharing documents and environments with Windows colleagues and customers; I don’t know if I will resign again at some point, but chances are this time is the right one.

Here I will try to put together all the difficulties that I encountered, the choices I made, the solutions adopted, in the hope that this may inspire other people to make this step.

Which distro?

As I said at the beginning of this post my first attempts to switch to Linux started almost 20 years ago. Since then, on every pc or laptop I was working on, I always kept some free partition on the disk and there installed and removed several Linux distros in dual boot with Windows.

I tried RedHat before it became a commercial distro, SuSE, Mandriva, VectorLinux and even Puppy.

In more recent years I tried Ubuntu and Kubuntu (in several versions and flavours), Linux Mint and KDE Neon. Every distro had its own good and bad points, but sooner or later the latter were too much to cope with.
Sometimes the problems were after all somehow limited, but something in the look and feel (menus, fonts, icons, window borders, scrollbars, etc.. ) was not satisfying enough.

A Virtual parallel experience with CentOS 6

In the meanwhile I had to work on a CentOS 6 environment for a customer. In order to minimize problems and to be able to easily backup and restore this environment I decided to install it as a VirtualBox instance.

The more I was using this virtual CentOS 6 installation, the more I started thinking “This distro is indeed quite good; I like it in several aspects; so why don’t give it a try for a non-virtual, but real (always in dual boot with Windows of course) installation?”.

So I did it! And installed the latest CentOS (7.3 at that time – nov. 2016).

A new non-virtual experience with CentOS 7

From the beginning I felt a good sensation with its look and feel: clean, professional, mature, but also highly customizable, refined in the details. Really good looking.

So here it is: CentOS 7 with its default GNOME desktop environment

Selection_003

… but there exist other desktop environments, other themes, icon packs and so on.

Which desktop environment?

My Dell Precision M3800 laptop comes with a 3200×1800 HiDPI resolution.
In this case the default installation detects the correct resolution, but sets the Scaling Factor at value 2, so to have readable fonts and a good look and feel. In fact one can appreciate the super high resolution of every graphic detail.

However I also usually work with an external 1920×1080 monitor and here we are with the first problems!

CentOS GNOME & Mixed HiDPI and non-HiDPI resolution monitors

In fact I was in the situation where either I had a good look and feel on laptop display but huge characters and windows in the external monitor (due to the scaling factor=2) or (setting the scaling factor to 1) a good look and feel on the external monitor but tiny and unreadable characters on the laptop display.

Yes, it seems that the scaling factor is global instead than being per-display
I also tried playing with setting the laptop display resolution to 1920×1080, but still there were problems.

An alternative Desktop Environment: MATE

So I discovered MATE Desktop Environment. MATE doesn’t try to handle HiDPI displays and scaling factor, so setting a 1920×1080 resolution for both displays was a stable and satisfying solution.

After having tested many desktop environments in many situations I must say that MATE is one of the most stable, reliable and also lightweight desktop environments.
It’s not much customizable and it lacks some features, for example pressing the Window key doesn’t show you the search tool, which is a nice way to launch an application just by start typing its name. Also the Alt-Tab for windows switching is quite basic and not customizable, but still it’s a very, very good desktop environment.
If you are struggling with multiple monitors or just want a rock solid desktop environment, go for MATE.

 

Other Desktop Environments

Looking for a lightweight DE you may hit LXDE, Xfce or LXQt: well, I’ve found they are too minimal, with a somehow poor look and feel.
In addition their resource consumption was not so lower than MATE, so I discarded them.

On the not-so-lightweight side, other than GNOME, there is Cinnamon, which is very interesting if you are looking for a highly customizable DE, with great effects.

I tried also KDE (also not a lightweight DE), in its recent Plasma version, but somehow didn’t convinced me.

 

Two stories

In the following articles I will put together all the details about the two (great) main Linux experiences that fitted my needs (indeed the mixed HiDPI and non-HiDPI monitors problem was the main constraint). In fact I was best satisfied by the following two combinations. Here I sum up the main characteristics and my impressions, then you’ll find more details on specific articles about each of them.

1) CentOS 7.4 + MATE

As I wrote before, I started in november 2016 with CentOS 7.3, then in september 2017 installed CentOS 7.4. Now I know that CentOS 7.5 is available, but didn’t tried it yet.
With CentOS 7.3/7.4 I choose MATE as DE.
CentOS comes with Nouveau video driver, the open source driver for Nvidia graphic cards: this is not usually a problem, unless you want to use some specific feature of Nvidia GPUs (like CUDA libraries for Deep Learning for example).
There are guides about installing the Nvidia drivers on CentOS, but I found them extremely complicated and often ended up without the graphical part of my operating system!!

CentOS uses XFS as filesystem and doesn’t handle NTFS out-of-the-box, so if you have (like me) a dual boot with Windows, after the installation you will have to install ntfs-3g package for handling NTFS and then re-generate the GRUB files, otherwise at reboot you’ll see only Linux and not while the Windows entry will be missing! Don’t worry: you haven’t lost Windows; just install the above package, proceed with the Grub regeneration and restart.

This distro is very conservative: for the sake of stability (it’s often used for servers) it tends to use older, but heavily tested, packages. For example uses Linux kernel 3.10 (altough you can enable newer 4.x kernels adding specific update repositories).

 

2) Ubuntu 18.04 + GNOME (default)

In april 2018 Ubuntu released its 18.04 (LTS=Long Term Support) version and I couldn’t resist to try it. In the past I tried 16.04 (LTS), which was quite good, but I didn’t like Unity as DE, so (specifically with 16.04) I opted for MATE.

Ubuntu (independently from the version) also comes with Nouveau video driver as the default for Nvidia cards, but here the difference is that you can easily switch to Nvidia drivers.

This distro uses Ext4 as filesystem and NTFS is handled just out-of-the-box, so if you have a dual boot with Windows at the restart after the installation you’ll find Windows entry available without special procedures!
In general Ubuntu uses newer packages (for instance with 18.04 I now have kernel 4.15) but however it’s still very stable; it’s mainly used for desktops.
Recently Canonical (the company behind Ubuntu) decided to switch back to GNOME as default desktop environment, abandoning Unity.
So, while with 16.04 you get Unity as DE, with 18.04 version you get GNOME.
Well, I must say that this GNOME (the one in Ubuntu 18.04) is very satisfying!
I like the windows (with previews) switching feature that comes out-of-the-box when you press the Windows key.
I like the popup that appears when I insert the headset jack for choosing the microphone source (with MATE you have to remember do it manually).
Moreover the mixed HiDPI and non-HiDPI monitors problem just vanishes since this version handles the Scale Factor separately for each monitor!

 

So for now I am using Ubuntu 18.04 + default GNOME with great satisfaction, but I consider CentOS + MATE also a very interesting set for a productive desktop (one day I should also try the latest CentOS 7.5, maybe the GNOME experience could be even better!).