Why Arch Linux?
Most major distros are divided between "stable" (but with very old packages) and "unstable" (but with the cutting-edge goodness). If you install the Long-Term Support (LTS) versions, you're doomed to have only old packages from a couple of years ago. If you install the unstable repositories, you're doomed to have stuff exploding in your face without explanation and losing hours browsing through Stackoverflow.
Now, it seems that Arch figured out the exactly "right" level of confidence between stable and cutting-edge. It keeps pushing the most recent version of software without breaking everything else all the time. So, in Ubuntu 16.04 and Fedora 25, if I want to install Postgresql, I am locked in to 9.4 or 9.5, but in Arch I can access 9.6 from the main Pacman repositories. (By the way, "Pac"kage "Man"ager is the most obvious name ever).
You can easily and you're in business.
And if you're on Ubuntu 14.04 and now you want 16.04, good luck on your way. It's easier to start from scratch.
So, it seems that the philosophy of Arch is to have the real most recent version of all software that won't break your system. There is no such thing as a big bang upgrade every 6 months that breaks everything. Instead, you have a constantly rolling upgrade system, where you're always on the latest version, without having to wait another year for the next big LTS.
Every major distro has "unsupported" repositories for proprietary binaries (codecs for example) or 3rd-party software. Then, there is Arch User Repository (AUR): a collection of small Git repositories from users maintaining simple text files.
AUR is clever. If you're from macOS and familiar with Homebrew, you will understand it: it feels like Casks and Formulas. A file can describe a recipe to download an available DEB package or tarball, disassemble it and rebuild it as a Pacman compatible package. It can describe the necessary dependencies and make the installation process super smooth.
For example, Sublime Text only has an option to download a DEB package or a tarball with the binaries. Same goes for Spotify, Franz, etc. Sometimes you can register Personal Package Archives (PPAs) and then your way in installing them. But you still need someone to build, maintain and distribute those packages properly. It's a lot of work.
Now, maintaining a simple Git repository with a simple PKGBUILD text file is far easier. does the hard work of build the package you need, in your machine, and then can handle installing it like any other package. No more -ing tarballs and configuring everything manually!
Maybe I can finally just do and have everything "really" upgraded without having to worry about the next big LTS that will eventually force me to reinstall everything from scratch.
Arch Linux is perfect for "Beginners"
I've been hearing about Arch for a long while and their users are very enthusiastic in trying to convince other people to join. Whenever you see such a heavily loyal fanbase there must be something interesting hidden under the hoods. Rolling upgrades, Pacman, AUR are really valuable reasons.
After just one day using it, I've come to realize that Arch is good for advanced users, but also for beginners. But not because it is easy. On the contrary: it's because it is hard in the right way.
Most "Linux users" nowadays just get a trivial-to-install distro, such as Ubuntu or Elementary, and they have no idea what goes on underneath. Blindlessly clicking "next" in the graphical installers.
Most people have no idea what TTYs are. That you can probe USB devices with command line tools such as or that you must use tools such as to partition and then to format them. That memory swap files are partitions with a special format. They are not aware of LVM options for flexible partitioning, or even that LVM exists at all. That the "thing" you choose your kernel from in the boot menu is called Grub and that you can tweak it.
There is a lot going on in assembling a fully functional Linux-based distribution. But graphical installers hide most of it. Arch Linux forces you to go step by step and really feel like you "own" your machine, not the other way around.
If you're a "beginner", I really urge you to install a distro like Arch a few times, in different configurations of machines, to really understand what an operating system really looks like.
The Arch Wiki is a very comprehensive and detailed repository of information for everything you ever need to know about installing and maintaining every component of a proper Linux system. You will learn a lot in the process.
But if you're like me, and you've been doing that through all the mid 90's and early 2000's (heck, I had to learn my way through Slackware 1.0, I still remember having to use boot and root floppy disks and screwing up my hard-drives not understanding cylinders and sectors through fdisk), you can skip it. For you, advanced/experienced users, I'd recommend you go with Arch Linux Anywhere.
It will custom install Arch but will provide you with enough automation to not waste much time in bringing a properly configured Arch installation up and running, without bloatware.
Pacaur - best way to deal with AUR
Arch users are quick to praise Pacman. For the most part, you can basically do:
|1||sudo pacman -S chromium|
And that's it. And then you can to upgrade installed packages. This is the basics you need to know.
If you're a developer I also recommend you to install the basic development packages:
|1||sudo pacman -Sy --needed base-devel|
Now, you can manually install AUR packages. You can go to their website and search for "terminix" (a very nice Terminal replacement, similar to Mac's iTerm2) for example. You will end up in this page and you will have to manually do the following:
|123||git clone https://github.com/gnunn1/terminix.gitcd terminixmakepkg -si|
Feels simple, but you can do better by installing Pacaur, a wrapper on top of Pacman. If you're using a graphical terminal such as Terminal or Terminix DO NOT FORGET to edit the profile to "Run command as login shell", otherwise there will be a PATH problem and Cower will fail to install .
|12345678910||sudo pacman -S expac yajl --noconfirmgpg --recv-keys --keyserver hkp://pgp.mit.edu 1EB2638FF56C0C53git clone https://aur.archlinux.org/cower.gitcd cowermakepkg -sicd ..git clone https://aur.archlinux.org/pacaur.gitcd pacaurmakepkg -sicd ..|
In summary, Pacaur can be used not only as a complement to install AUR packages, but also if you want to use a single tool to manage both AUR and official Pacman packages. All commands will be Pacman commands. So instead of doing to upgrade all packages, you can replace it for . Everything else mostly "just works".
When you try to install a package with it will first look into the official repos, if not found then it tries AUR. There's even a nice GUI if you want:
Now, to install the same Terminix, you can do just this:
It will ask you simple yes/no questions such as "Do you want to edit the build file?" You can answer "n" to those and confirm "y" when it asks you if you want to install the dependencies or the generated package.
And that's it! You can search the AUR repositories with:
It will give you a lot of options, for example:
|12345678||$ pacaur -s spotifyaur/spotify 18.104.22.168-1 (1037, 36.09) [installed] A proprietary music streaming serviceaur/playerctl 0.5.0-1 (127, 11.33) mpris media player controller and lib for spotify, vlc, audacious, bmp, xmms2, and others.aur/blockify 3.6.3-3 (106, 5.61) Mutes Spotify advertisements....|
Common sense, my friends. Read, interpret, choose. Arch requires you to be a smart person, and by "smart" I mean: knowing how to read! Most people skip reading things and just click stuff like moron.
Now that you know the exact name of the package you want, just install it normally like this:
Pacaur is one of many AUR Helpers. I was initially drawn into Yaourt, but after research, you figure out that you should only try out aurutils, bauerbill or pacaur. I prefer the latter because it's easier to spell out.
This should keep your system up to date, both the official and AUR packages.
Asdf - the last languages version manager you'll ever need
If you're a Rubyist, you're familiar with RVM, rbenv, chruby. If you're from Node.js you know the RVM-inspired NVM to manage your different versions of Node. Each new language nowadays needs a version manager as they're evolving quickly and because if you work with client projects you will eventually need to use an old version to deal with legacy software.
So even though you can install the current stable Ruby 2.3.3 by just doing or you will eventually need to switch back to Ruby 2.1 or older for a client project, for example.
Should you install RVM? Or rbenv? And how do you deal with different versions of Clojure, Go, Rust, Elixir?
That sounds like yet another maintenance nightmare to deal with. But someone decided to actually solve this problem in an elegant way. Enter asdf - and if you happen to know Akash Manohar give him a big hug.
Let's install it (from the project's README):
|1||git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.2.1|
Then edit your shell config files:
|12345678910111213141516||# For Ubuntu or other linux distrosecho -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bashrcecho -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc# OR for Mac OSXecho -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bash_profileecho -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bash_profile# For the Fish shellecho 'source ~/.asdf/asdf.fish' >> ~/.config/fish/config.fishmkdir -p ~/.config/fish/completions; and cp ~/.asdf/completions/asdf.fish ~/.config/fish/completions# If, like me, you like ZSH with YADR (you have to install YADR before this)touch ~/.zsh.after/asdf.zshecho -e '\n. $HOME/.asdf/asdf.sh' >> ~/.zsh.after/asdf.zshecho -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.zsh.after/asdf.zsh|
This tool is very self explanatory. Let's start by installing a bunch of plugins (full table of links in the README file):
|1234567||asdf plugin-add clojure https://github.com/vic/asdf-clojure.gitasdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.gitasdf plugin-add erlang https://github.com/asdf-vm/asdf-erlang.gitasdf plugin-add golang https://github.com/kennyp/asdf-golang.gitasdf plugin-add ruby https://github.com/asdf-vm/asdf-ruby.gitasdf plugin-add rust https://github.com/code-lever/asdf-rust.gitasdf plugin-add nodejs https://github.com/asdf-vm/asdf-nodejs.git|
If you're like me, you must be super excited because you already know what we will do next:
|1234567891011121314151617181920212223242526272829303132||sudo pacman -Sy jdk8-openjdk # you need Java for Clojureasdf install clojure 1.8.0asdf global clojure 1.8.0mkdir ~/binwget https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein -O ~/bin/leinchmod +x ~/bin/leinexport PATH=$PATH:~/bin# echo "PATH=$PATH" > ~/.zsh.after/binpath.zsh # if you use YADR+ZSHleinasdf install erlang 19.0asdf global erlang 19.0asdf install elixir 1.4.0asdf global elixir 1.4.0mix local.hexmix local.rebarasdf install golang 1.7.4asdf global golang 1.7.4asdf install ruby 2.4.0asdf global ruby 2.4.0gem install bundlerasdf install rust 1.14.0asdf global rust 1.14.0asdf install nodejs 7.4.0asdf global nodejs 7.4.0npm -g install brunch phantomjs|
That's it! We now have every language we need installed and ready to use! What if I need Ruby 2.3.1 for a client project?
|12||asdf install ruby 2.3.1asdf local ruby 2.3.1|
And now I have 2.3.1 locally (I can change it to be the system default using ).
Most of the maintenance effort summarizes to this:
|12||asdf plugin-update --all # update the individual pluginsasdf list-all [language] # to list all available versions|
And that's basically it! You have almost everything you need to develop software.
Useful Software to Install
Now, as usual, let me recommend some software:
|1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556||# make sure you're up to datesudo pacman -Syu# install multimedia codecssudo pacman -Sy gstreamer0.10-pluginssudo pacman -Sy exfat-utils fuse-exfat a52dec faac faad2 flac jasper lame libdca libdv gst-libav libmad libmpeg2 libtheora libvorbis libxv wavpack x264 xvidcore gstreamer0.10-plugins flashplugin libdvdcss libdvdread libdvdnav gecko-mediaplayer dvd+rw-tools dvdauthor dvgrab pulseaudio-equalizer-# if you need japanese fonts like mesudo pacman -Sy adobe-source-han-sans-otc-fonts otf-ipafont# some components that you will needsudo pacman -Sy fuse-exfat # I personally like the Numix theme and Breeze Icons, change them with the Tweak Toolsudo pacman -Sy numix-themes breeze-icons # Ifnstall more good looking fontssudo pacman -Sy ttf-dejavu pacaur -S ttf-ms-fonts ttf-vista-fonts ttf-liberation adobe-source-sans-pro-fonts ttf-ubuntu-font-family# Firefox and Java pluginsudo pacman -Sy icedtea-web firefox# for devssudo pacman -Sy zsh the_silver_searcher gvim imagemagick htoppacaur -Sy ttf-hack# Native wrapper for Web apps such as Slack, Hangout, etcpacaur -Sy franz-bin# Best native Twitter client for Linuxpacaur -Sy corebird# No need to explainpacaur -Sy spotifypacaur -Sy sublime-text-dev # install these plugins http://www.hongkiat.com/blog/sublime-text-plugins/# If you like to read RSSpacaur -Sy feedreader-beta# if you need Office-like supportsudo pacman -Sy libreoffice-fresh# if you need Photoshop-like supportsudo pacman -Sy gimpsh -c "$(curl -fsSL https://raw.githubusercontent.com/doctormo/GimpPs/master/tools/install.sh)"# if you want a really good video editorsudo pacman -Sy frei0r-plugins dvdauthor vlcpacaur -Sy kdenlive# this can make CPU-intensive software to behave better and guarantee better user experiencepacaur -Sy ananicy-git# dropbox is the most horrible piece of software, but you may need it:pacaur -Sy dropbox dropbox-cli nautilus-dropbox|
As usual, I like to replace Bash for Zsh and configure Vim with YADR:
|123456||sh -c "`curl -fsSL https://raw.githubusercontent.com/skwp/dotfiles/master/install.sh`"touch ~/.vimrc.beforetouch ~/.vimrc.afterecho "let g:yadr_using_unsolarized_terminal = 1" >> ~/.vimrc.beforeecho "let g:yadr_disable_solarized_enhancements = 1" >> ~/.vimrc.afterecho "colorscheme gruvbox" >> ~/.vimrc.after|
To install and configure Postgresql 9.6:
|123456789101112131415||sudo pacman -Sy postgresqlsudo -u postgres -iinitdb --locale $LANG -E UTF8 -D '/var/lib/postgres/data'exit# do not do this in Production machinessudo sed -i.bak 's/ident/trust/' /var/lib/postgres/data/pg_hba.confsudo systemctl start postgresqlsudo systemctl enable postgresqlsudo -u postgres -icreateuser --interactive # create with your username and superuser rolecreatedb youruserexitsudo systemctl restart postgresql|
If you want to install Docker:
|12345||sudo pacman -Sy dockersudo usermod -aG docker $USERsudo systemctl start dockersudo systemctl enable dockerlogout|
We always need Redis, Memcached, so let's install them:
|12345||sudo pacman -Sy redis memcachedsudo systemctl start redissudo systemctl enable redissudo systemctl start memcachedsudo systemctl enable memcached|
After you install and remove a lot of software, you may end up with unnecessary packages eating up disk space. You can clean it up with:
|1||sudo pacman -Rns $(pacman -Qtdq)|
And as I said before, the Arch Wiki is super useful for you to keep tweaking your system, so make sure you read articles such as this "Improving Performance" page.
One thing to keep in mind about most Linux distros is that the kernel is usually compiled to be better optimized for Servers.
Modern hardware, especially with lots of RAM and equipped with an SSD "should" work well enough. But not always, you may experience some "stutters" or even total unresponsiveness.
There are many reasons why, but the 2 main culprits are application memory being paged out to disk swap and the I/O scheduler of the Linux kernel.
In a server scenario, you want processes to have a fair share of resources, which is why a process scheduler such as CFS - Completely Fair Scheduler - and CFQ - Complete Fairness Queueing - for I/O, are fantastic.
But in the Desktop the story is totally different. You are willing to trade-off high throughput for lower latency in order to have responsiveness. No one wants to have their UI and mouse pointer frozen while copying large files to USB drives, or while waiting for that nasty to finish compiling your also nasty gcc-gcj. You may end up with a frozen UI for hours! This is just unacceptable!
What you want for Desktop usage, with dozens of random processes doing random operations, is almost "soft real time" configuration. A more aggressive preemption where the Kernel gives some control back to the UI so you can do other stuff - albeit slower. Low latency is the key to have a smooth user experience.
To increase responsiveness, the most important first thing you want to do is configure this:
|123456||sudo tee -a /etc/sysctl.d/99-sysctl.conf <<-EOFvm.swappiness=1vm.vfs_cache_pressure=50vm.dirty_background_bytes=16777216vm.dirty_bytes=50331648EOF|
Reboot. If you want to know what those settings are, read this.
And you may want to install a customized Kernel with a different Scheduler. There are 3 options nowadays: Zen, Liquorix and CK.
I am still not 100% sure which one is the best, they have a few maintenance concerns.
Out of the 3, you will want to stick to Zen (which is basically Liquorix), as it's maintained in the official repositories in binary format (believe me, you don't want to wait for a custom kernel to compile, it takes forever).
|12||sudo pacman -Sy linux-zensudo grub-mkconfig -o /boot/grub/grub.cfg|
The main change is probably the I/O Scheduler, upgrading from the standard CFQ to BFQ. If you're using a mechanical hard drive you will want to use the better BFQ (which Zen enables by default). If you're using an SSD you will want 'deadline' instead.
DO NOT INSTALL THOSE KERNELS IN PRODUCTION SERVERS! They are intended for desktop usages only!
For the most part, Zen may have the better balance between stability and tweak set. You may want to use it, especially in older hardware. Modern hardware, as I said, may not notice too much difference.
I am not sure if it is the Arch maintainers that are doing a super job or if it's RedHat and Canonical that are screwing up their distros so badly in comparison.
I mean, Ubuntu, Fedora, OpenSuse, Elementary, are all fair and nice distros that, most of the time, "just works".
But for a distro that many consider targetted to "advanced users", Arch is way more polished. I can't figure out why.
In the same hardware, the Gnome 3 experience under Arch is noticeably better than the same Gnome 3 over Fedora. Compared to Unity on Ubuntu, it's miles ahead. It's fast, fluid, good looking, the defaults all work out nicely.
And all of a sudden I realize that I don't have to worry about major upgrades. Rolling upgrades to the latest continuously brings me another layer of confidence.
Arch makes me feel like I am in control again without requiring me to waste hours tweaking things to my liking. The defaults are rock solid and I can small improvements over it whenever I need to.
Kudos to the Arch maintainers, this is the finest Linux distro I've ever had the pleasure to play with. I hope this feeling goes on as I keep using this as my daily driver. But so far I am convinced that this is the right choice.
Linux is all about what you want and having it from the ocean of free and open source software. The same applies while performing a comparison of desktop environments as they comprise of different applications and a GUI via which the user interacts with the operating system. Just like a plethora of Linux-based free operating systems, are many options available and our list of best Linux desktop environment and their comparison includes the likes of KDE, Cinnamon, Xfce, GNOME, etc.
The Linux world is full of open source software. You have the option of choosing from hundreds of distributions and customize them as per your will. No one slaps you with a copyright even if you change the source code of a distro to fork your Linux distro and release it with a new name. That’s the beauty of free software and open source. Only one thing the creators may ask you is to give them proper credits because they have also invested their efforts and time. Well, that’s a different story.
Recommended: What Is A Linux Distribution? How Are All These Linux Distros Different?
One of the many customization options is the choice of using a suitable desktop environment. A desktop environment or graphical desktop is a set of essential tools and utilities running on top of your operating system. They are accessed using a standard graphical user interface (GUI). By choosing one of the best GUI options available, one ensures a comparatively easier workflow and faster performance.
The term desktop environment isn’t a Linux-specific buzzword. You do have desktop environments on Windows and MacOS. But these proprietary operating systems don’t allow you to change the default desktop. The most you could do is modify the appearance of their GUI by applying themes, wallpapers, icons, etc.
Most of the consumer-centric Linux distros come with their custom designed desktop environments. For example, the default desktop environment for Ubuntu is GNOME (earlier it was Unity). But the Linux distros are customizable, so, you can install any other desktop of your choice. Here is Linux desktop environment comparison which you should read and decide the right one for your next system.
Note: It’s not a ranking of 10 best desktop environments. Give these brief Linux desktop review and choose one as per your needs —
10 Best Linux Desktop Environments You Need To Try in 2018
1. KDE Plasma
Latest Stable Release: KDE Plasma 5.11The Plasma Linux desktop environment by the KDE software community is one of the most customizable graphical desktop environments. It’s available for the Linux family of operating systems. The tools and utilities shipped with KDE Plasma are collectively known as KDE Applications.
A notable addition to the KDE Applications bundle is the default file manager Dolphin which came to Plasma Desktop environment with the launch of Plasma 4. It can be thought of as one of the most advanced file browsing applications. It can perform batch file rename tasks with ease and offers tabbed browsing support. Also, this feature-rich and powerful desktop environment is a home to many desktop widgets. It offers users the freedom to add multiple panels on the desktop.
The task manager on Plasma 5 shows live window previews upon hovering the mouse over an active program name. Other popular desktop environments have started to add this feature. You also have control options, in case, you’re hovering on an audio or video player in the taskbar.
Jump Lists are another addition to the task manager allowing you to access main options for a program by performing a right-click on its launcher icon. KRunner is the launcher in this top Linux desktop which acts as sort of a mini command line. In addition to opening and closing apps, you can also execute shell commands using the launcher.
You can also access your Android and Blackberry devices wirelessly using the KDE Connect application. It allows you to fetch device notifications, check battery status, access storage.
The KDE Plasma comes as a default Linux desktop environment for the OpenSUSE Linux distro. An Ubuntu variant featuring the KDE desktop is known as Kubuntu. The Ubuntu-based Linux Mint is famous for Cinnamon but it also has a KDE desktop version which you can try. There are several other Linux distros like Netrunner, Fedora KDE, Slackware, etc.
KDE Plasma website
Latest Stable Release: 3.26GNOME is an acronym for GNU Network Object Model Environment. This popular desktop environment is slightly younger than KDE, and it is made up of only free and open source software (FOSS). It is designed with a goal of providing simplicity, ease of access, and reliability to the users. These things have contributed to GNOME’s popularity and placing it alongside KDE for the best desktop.
The GNOME Project develops GNOME, and it is based on the GTK+ toolkit with a focus on productivity as per GNOME’s Human Interface Guidelines. This customizable desktop environment uses the X Window System display server, but the support for Wayland has been added with the release of version 3.10. The developers have used Wayland to improve features like kinetic scrolling, drag and drop, and middle-click paste.
A notable feature is the Activities button on the top-left corner of the screen. You can also press the Super Key/Windows Key to access it. The activities button enables switching between workspaces and windows. GNOME 3.18 added Google Drive integration to the desktop environment enabling file sharing functionality right out of the box.
The latest GNOME 3.22 Linux desktop environment release integrates Flaptak application framework and takes advantage of its security features. Along with updates to the dconf editor, this great Linux desktop environment also adds the batch file rename feature to its file browser application which was a much-needed feature and was already present on KDE Plasma. The file manager can also access compressed files without the need of any separate application.
Many great Linux distros come with the GNOME desktop as the default desktop environment. You can install Fedora, OpenSUSE, Ubuntu GNOME, Debian, and Arch Linux which are notable Linux distros featuring the GNOME desktop.
Latest Stable Release: 3.6It’s one of the most popular and best desktop environments which comes as the default environment on the Linux Mint. Regarding age, Cinnamon is as old as MATE (mentioned below) and shares similar origin history. When the GNOME shell was introduced with the GNOME 3 release, it was the situation of a dilemma for the Linux Mint team. They couldn’t go for the GNOME shell as it didn’t fit their goals but there was no alternative. That’s when an improved version of the GNOME shell was created and was called Mint GNOME Shell Extensions (MGSE). But MGSE didn’t meet the expectations of the Linux Mint team, and they started the Cinnamon project to create a forked graphical shell.
With time, Cinnamon matured into a complete desktop environment, but some people still believe it’s a graphical shell. It also contains forked versions of GNOME 3 components. During initial years of Cinnamon coming into existence, the Linux Mint team was adopting regular Ubuntu release for the development of their distro. But it welcomed a plethora of bugs and shortcomings to Cinnamon. This top desktop environment became stable and filled with new features only when the team started using the Ubuntu LTS release for Linux Mint 17 and later.
Cinnamon is all about user experience, and it is full of animations and effects. Before moving ahead in this Linux dekstop environment comparison, let me tell you that people transitioning from Windows will find Cinnamon somewhat familiar and easier to use. It’s one of my personal favorites.
Linux Mint is the best option for trying Cinnamon desktop as Linux Mint Cinnamon Edition is Mint Project’s flagship release. But, you can also install it on other Linux distros like Debian, Ubuntu, OpenSUSE, Fedora, etc.
Latest Stable Release: 1.18MATE is only a child in comparison to Plasma and GNOME, which have crossed their teenage. The new desktop environment, five-year-old to be precise, manages to grab a place below them. MATE is originally an extension of the GNOME 2 desktop, but it doesn’t mean it uses old technologies and software. Compared to KDE, GNOME, and Cinnamon, MATE is a lightweight desktop environment.
It also follows the recursive acronym tradition and stands for MATE Advanced Traditional Environment. The desktop environment was materialized by Perberos following the GNOME 3 controversy.
MATE Linux desktop comes with many forked versions of GNOME Core Applications as well as many developed-from-scratch applications. The forked packages have been renamed to avoid conflict with GNOME 3. It runs on the GTK+3 toolkit and it is supported by developers like Martin Wimpress (co-founder of Ubuntu MATE project), Alan Pope (co-founder Canonical and Ubuntu), and developers from Linux Mint.
MATELinux desktop environment’s biggest USP is that it doesn’t eat your hardware resources. This light Linux desktop environment can run it on budget machines having a scarcity of hardware like Raspberry Pi.
Popular distributions featuring MATE desktop environment are Ubuntu MATE, Linux Mint MATE, Fedora, Debian, Manjaro Linux, etc.
Latest Stable Release: 4.12Xfce is another desktop environment aimed for machines with limited hardware. Starting in 1996, it has been in existence for almost two decades. The creators of Xfce say the xfwm4 window manager used in the desktop environment. This lightweight desktop environment is designed according to the standards proposed by freedesktop.org. Adhering to its purpose, Xfce lacks the animations and special effects. But it doesn’t fail to include all the necessary components and features one would expect from a popular desktop environment. Overall, it’s one of the most popular lightweight Linux desktops.
If you have heard about the Ubuntu-based Elementary OS, which is often called the most beautiful Linux distro, you might be aware of its default desktop environment Pantheon. Its core applications – written in Vala and C – are either designed from bottom to top or find their roots in the GNOME applications. Pantheon’s design follows a philosophy of minimizing the need for the command line. The bottom of the desktop screen features a macOS style dock where the users can hook their favorite applications. It is a lightweight desktop environment but doesn’t compromise on the looks. Pantheon comes with multiple workspaces and supports hot corners which can be activated in the system settings.
Latest Stable Release:0.12.0Sprung out as LXDE derivative in 2014, the LXQt desktop environment finds its home on the Linux distros designed to carry the “lightweight desktop for Linux” tag. The applications and components for this desktop environment are designed using Qt and KDE Frameworks 5. LXQT Linux desktop environment might not be able to please the users who find comfort in a good looking user interface flaunting its graphics on their machines. But, it would be able to run on older machines with lower display resolution and a scarcity of hardware resources.
Latest Stable Release: 10.4This desktop environment is the face of the Solus family – Linux distros with the lowest booting time – maintained by the Solus Project. It’s probably the youngest desktop environment existing today after PIXEL desktop found on Raspbian. Other than Solus, Budgie has received friendly gestures from other distros. In the case of Ubuntu, there is a separate and official Ubuntu flavor known as Ubuntu Budgie. Also, Arch Linux has included the Budgie desktop in its repository.
A USP for Budgie is Raven – a combined area for notifications, widgets, and various customization options. It allows easy access to the calendar and different control options for volume, audio playback, power options, etc. Apart from Cinnamon, Budgie is my another personal favorite Linux distro.
Launched in 2016, PIXEL is the default desktop environment on the Raspbian Linux Distro. It is a forked version of the LXDE desktop environment intended for use on the Raspberry Pi single board computers. It doesn’t have much to offer except some soothing wallpapers and the set of applications for use on the Raspberry Pi hardware. PIXEL Linux desktop comes with an emulator software for SenseHAT – an extension board for Raspberry Pi computers.
10. Unity (Scheduled to be discontinued, forked)
Latest Stable Release: 7.5 (Unity 8 in development)The Canonical-built Unity existed on the world’s most popular Linux distribution Ubuntu. Many people consider Unity as a desktop environment, but it is only a graphical shell built on top of the GNOME desktop environment. It uses many unaltered GNOME tools and software. However, Canonical has now shifted back to GNOME desktop.
Still available in the archives and as an optional session, Unity is for the users who are new to Linux and don’t want to struggle with the command line. Unity dekstop environment gives you simple looks and the Software Center where you can find tools and applications for Ubuntu.
The launcher on Unity which facilitates app switching is placed vertically on the left side of the screen. It was done to save screen space on smaller machines called Netbooks. Personally, I didn’t like it during my initial days on Ubuntu. The user interface on this popular desktop environment might become laggy sometimes if you’re using a machine that doesn’t impress people on the specifications chart. A notable feature on Unity is called HUD (Head-up Display) which debuted with the release of Ubuntu 12.04. Lots of features and looks of Unity have been ported to Ubuntu’s GNOME implementation.
Other than the desktop version, Unity is also available on Ubuntu for other devices like smartphones, tablets, TV, etc. However, their development is now dependent of third-party developers.
As I’ve mentioned earlier, there are tons of choices in the Linux world and the question “What is the best Linux desktop environment” doesn’t have a definite answer. However, there are some great choices in this comparison that are loved by all. If you’re looking for a power-packed and feature-rich desktop environment, go for KDE or Cinnamon. If you’re looking for a light Linux desktop, choose Xfce.
So, which Linux desktop environment is your favorite? Don’t forget to share your views.
Also Read: 10 Best Password Managers For Linux Operating Systems