Skip to content

Desktop Environment

This defines how the windows are arranged, and other workflow related tasks (like the home menu). Also called a Window Manager.

Choosing a Desktop Environment

Beginner

GNOME

  • Defaults on Fedora, Debian, Ubuntu, CentOS, etc.

  • One of the larger contributor networks

  • Many familiar features to MacOS and Windows

image

XFCE

  • Lightweight and performant

  • "Aims to be fast and low on system resources"

image

Cinnamon

  • Fork of GNOME 3, for Linux Mint

  • Created after disagreement of GNOME 3 design direction, follows more traditional patterns

image

KDE Plasma

  • Most Windows-like

  • Multiple virtual desktops, with custom layouts for each

  • Also a very large contributor and support network

image

MATE

  • The continuation of GNOME 2

  • Interested in "preserving a traditional desktop experience"

image

Intermediate

i3

  • vi-like control system, mostly with no mouse control

  • New windows maximize screen size by default, in a tiling-manner.

  • Minimal interface and features, just enough to provide access to program-specific GUIs

This is tiling window manager (windows split the screen as shown) image{width="0.7\linewidth"} Source: i3 website

bspwm

  • Tiling window manager like i3, but represents windows as leaves of a full binary tree.

  • Focuses on configuration and standardization through X11 events, and uses separate program (bspc) to manage communication to the window manager itself, which handles all keyboard and mouse input, process signals, etc.

LXDE

  • Performance as a priority

  • Highly modular, with few inner dependencies making it easier to install only what a users wants or needs

image

Advanced

These are highly configurable, but they don't work well out of the box

Openbox

  • Stacking window manager, meaning windows drawn in specific order, allowing windows to display on top of one another.

  • Programs run in boxes, and openbox allows for full control on howboxes interact, run, display, etc.

image

Awesome

  • Aims to provide a "framework window manager", where there is very minimal features and you must configure it to get useability.

  • Provides standardized API to interact with, with out-of-the-box scripting available using the Lua programming language.

image