Right after you have chosen your Linux distribution, the very next question comes to your mind is what desktop environment am I going to use? This was not a problem if you have used windows or mac, you do not have the choice at all! Linux gives you the freedom and the sweet trouble of which one to choose. Let’s see if we can help you here.
One thing we need to clarify before we proceed, not all desktop environments will work out of the box in all distribution. Why?? Because sometimes developers do not target all distributions and skip testing on distros other than their selected few. For example, Cinnamon is only supported on Linux mint. That does not mean you can not make that DE work on your non-mint system. Most probably you can, but you may need to go through additional pain to fix things if any trouble arises.
Okay, enough talking.
Gnome
Gnome does not have the most extensive set of features, but that’s not its goal. Gnome wants to keep it's feature-set small but solid. It is most widely chosen as the primary DE among distributions because of this. It has a very large flock of developers supporting it. Its features can be extended easily by thousands of extensions. Its easy for developers to write these extensions with the help of the great API & documentation gnome provides. You can’t go wrong with gnome.
Pros
- Stable, robust, rock-solid
- Thousands of extensions
- Official support from distros
- Large developer base
- Minimal, unobtrusive design
- Wayland Support
Cons
- Fewer features, less customizability
- Extensions are not of good quality. Fails too often.
- Poor workspace management
- Resource hungry
KDE Plasma
KDE has tons of features on the contrary. Not only it provides the DE, it provides many softwares as well which suits best only on KDE (for example, KDE connect). while it has its pros on customizability and feature-set, it did not feel that stable to me like many others. The code-base is old and hard to maintain, as complained by many. It is also a bit heavier than most others.
[Edit]
KDE plasma has improved a lot over the past year. I can't complain it's 'heavy' anymore. Plasma fans have fried me down there in the comment section with some very valid statements. Kudos KDE for the revamped plasma!
Pros
- HUGE feature-set
- Large developer base
- KDE softwares
- More Customizable
- Wayland Support
Cons
- Not so robust
- May seem cluttered and distracting to many
XFCE
It looks old and boring, honestly. Fortunately, it's only when you first unpack it. You can customize it to your heart’s content. The look, the feel & the behavior. XFCE is very efficient in using resources. You can expect solid, robust performance although it is maintained by only a handful of developers. If you have a low spec system, XFCE can be your friend. I have seen many high spec folks using XFCE because they like the efficiency and no-bullshit principle of XFCE
Pros
- Fast, Efficient on resources
- Customizability
- Good workspace management
Cons
- Old school design out of the box
- Slow development
- No real sign of Wayland support
Mate
Gnome took some radical decisions when they upgraded from Gnome 2 to Gnome 3. Many gnome developers and fans did not like the move at all. They decided to take the existing codes of Gnome 2 and keep making it awesome in their way. Mate is the end result. It does not have that many extensions like Gnome 3. But it's fast, simple, customizable and robust.
Pros
- Many active developers
- Very easy to customize
- Simple, lightweight, fast
- Robust and stable experience
Cons
- Slow to pick up trends
- Conservative principles to hold on Gnome-2 like experience
- Looks and feels old by default
- No Wayland support yet
Cinnamon
There are many Windows refugees out there in Linux world. Many of them prefer a Windows-like look and feel in their desktop environment. Cinnamon can be the way to go. It's also a child of the mighty Gnome DE. Unlike MATE, it is born from Gnome 3 (MATE is a fork of Gnome-2).
Pros
- Windows look & feel
- Nice UI, theming
- More modern fork of Gnome
- Fairly Customizable
Cons
- Not that robust
- Only supported on Linux mint
- Sometimes buggy
i3
A Desktop environment mainly consists of a window manager, panels, menu, system tray, launcher and so on. I3 is not a full desktop environment. It is basically a window manager with a bit of panel support. Unlike the DE’s that we have discussed already, this one does not have a floating window manager. This is a tiling window manager which can provide a very fast workflow for power users. Many former DE users moved to such tiling window managers and you can try one too!
Pros
- Crazy fast workflow
- No need for mouse 90% of the time
- Extremely customizable
- Configuration (aka rice) can be replicated easily
Cons
- Difficult for beginners
- Hard to set up as a full DE
- Panels, menu, system tray set up can be hard
[Edit]
There are other DEs worth mentioning, like Budgie. And if you like an window manager like i3, openbox is another big name to try out. However, I haven't personally tried these so not commenting too much on them. However, do check out the comment section to read other people's experiences!
Top comments (60)
i3 isn't a desktop environment. It's a window manager. You can use i3 on top of Gnome or KDE to replace the current window manager.
Technically true, but can be used instead a full blown DE.
I use i3wm without any DE and find it extremely enjoyable.
Yeah I mentioned that though. I tried to use i3 on top of Gnome but couldn't find a proper solution that works seamlessly. have you tried?
Try Regolith, this is an easy start for i3...
I tried i3-gnome-flashback a while back and it worked pretty well: github.com/deuill/i3-gnome-flashback.
Xfce was the one i got to play best with x-server when trying to make my WSL-launched apps look and act like native Windows apps. Also the one that worked best when I tried running a VirtualBox linux vm in desktop-integrated mode. Probably something to do with how square and shadowless their themes are: Other Desktop Environment themes all had this huge window shadow margin that follows the Linux-rendered UI into Windows' viewport and I found no way to completely turn it off. Some environments couldn't run with VirtualBox's integrated-desktop mode at all. And panel-based window manager DE's was useless when what I wanted was to make linux GUI apps run seamless with Windows desktops. So kfce won that one, twice (virtualbox and WSL).
Unfortunately I have a habit of, when I finally get my Linux setup perfectly, to eventually break the desktop environment and giving up on fixing it again.
Re: the big shadow is part of the composite manager. I'm not sure what's the XFCE default, I use
picom
(a.k.a Compton) which is highly customizable. You can remove the shadow and effects specific by window or window class.TIL. Thanks, I gotta take a look at this the next time I try Linux again.
Oh I do it every time. Launch WSL > launch XFCE4 Panel. The rest of the Linux stuff is managed by launching apps from panel. I like XFCE Terminal because it has clickable links and text do not break on resizing the window.
haha I would use a backup tool like timeshift though. Maybe you should too!
I find not just cinnamon but mate and budgie and xfce and lxde all are very Windows friendly. I never understood why cinnamon was always the one people say is for Windows people. Maybe because Windows people are used to crashing. That's the only thing I can think of as to why only cinnamon is usually recomendef
we can say this to Gnome also. Windows guys like Zorin's look & feel a lot, that's Gnome !! Cinnamon Looks good out of the box, unlike XFCE/LXDE cinnamon. I think we can't expect new windows refugees to be comfortable in ricing their DE.
I think it's just that Cinnamon is the default on Mint and Mint is the common disto recommended for new Linux users who are used to Windows.
Is this still true? I haven't seen this recommendation made very often anymore
I've been doing lots of distro searching the last few weeks, just debating on upgrading Ubuntu 18.04 or using something newer (on my daily driver). I have a 2nd laptop I use sometimes that I try different distros on for curiosity sake.
Seemingly every list I see has Mint at or near the top for new users. But I think to your point, no, it's not the default recommendation anymore. I guess we're past the point of having one good beginner distro and there are a few good options.
Ya lot of things have changed actually, & distros are more usable & newbie-friendly than ever. Who thought people will suggest Arch-based distro to newbies! Now I do recommend Manjaro!
KDE is not resource hungry at all. It uses less than 0.5 GB right after booting.
Sorry, I haven't used KDE things in 2019. I've edited that part, thanks for correcting me!
I think this is some leftover stigma from the early KDE 4 days, it's surprising how lightweight it is now.
I love XFCE.
I used to use a fresh installation of Arch without a real DE, just running i3. But I noticed my setup lacked a lot of useful stuff that I wanted to have (specially in laptops). Played with gnome-session, no good and a lot of stuff I didn't want. When I moved out from i3 to EXWM (Emacs X Window Manager) I noticed I really needed the benefits of a desktop environment and that's where I first tried XFCE.
Good thing is all the XFCE cons on this post don't matter to me.
Good post though, I noticed I also played with every single one of them. Now I'm more stable with my choices.
This "KDE" analysis is highly questionable. First of all, KDE is not a desktop environment but a community. The desktop environment produced by KDE is called Plasma. The KDE Software that is mentioned (including KDE Connect) is completely independent from Plasma. In fact, lots of KDE Applications also run on Windows, macOS or Android. Also the claim that the KDE codebase is old and thus hard to maintain is questionable. It's true that some of the code dates back to the early days of KDE 20 years ago, but with very few exceptions maintainability is not a problem. Many parts of the software are very much younger even. GNOME is not much younger than KDE, but here there is no such claim at all. Furthermore, claiming that Plasma is particularly "heavy" is not true at all. In fact it's much more performant than GNOME shell and on par with the other mentioned desktop environments (well, except for i3, which is not really a desktop environment)
Originally, KDE was an acronym for K Desktop Environment, but I guess that's gone the way of Kentucky Fried Chicken and International House of Pancakes.
Thank you it was very interesting !
Do you plan to write an article similar to this one but with Linux distributions please ? :D
They are all more identical than people make them out to believe, in my opinion at least. I use Debian on servers because it is solid and reliable and I know it well, and I just put Manjaro on a HP Spectre I was about to throw against the wall; we will see how that goes.
Stick to something mainstream unless you have specific needs. You'll be able to get better support. Most distros allow you to create a Live USB stick so you can boot it up and play around and quickly veto it.
Thank you !
TLDR: If you're a developer maintaining a sophisticated development stack, better stick to Ubuntu. If you are not, try experimenting with all the top distros in distrowatch until you realize you want to stick with Manjaro ;)
kidding, you can't go wrong with any of the big names actually. keep exploring!
Haha yes you're right I will need to try all these distros :D
i am fan of linux from i was in first year of college. At that time i bought new HP laptop which came with preinstalled windows and i tried to install linux and formatted my whole system 😂😂 and i know it crazy..... i did lots of stuff after that my journey begins with this....... now almost 6 years i'm using linux. i have used many desktop environment with many linux distribution. my personal choice is KDE. 😍😍 i really love it.
For me, Gnome is it. I just keep going back to it and it's what I will recommend to friends, family or anyone interested. Gnome has become so mature that I no longer theme it outside of changing to icon set (currently rocking Newaita icons). Gnome is, for the most part, has the right amount of customization options, simplicity and beauty and nothing else really does that for me. Of course there is room for improvement but there is also time for improvement. I'm excited to see where the Gnome team takes this experience.
The question I have is how do you write your own desktop? Give an example, electron for node.js based desktop
ya, Unfortunately, I haven't seen too many performant softwares written in electron(except VScode & handful others). May not be a good idea!
Depends what you mean by perfomant, I had the idea of writing most of the backend in rust with wasm. If electron is out then thier may be lighter alternatives.
WASM can be multithreaded also if that was a concern, plus FS is exposed from libc if used in node context. In other words I think it might actually now be a realistic premise.
I'm not sure a JS based DE is a good idea. Almost all DEs are written in C(++). I have no experience myself but I reckon JS would be too slow.
Yeah I didn't plan to write the logic in anything other than web assembly.