DEV Community

Cover image for Best Window Manager For Linux
Badal Aryal
Badal Aryal

Posted on

Best Window Manager For Linux

Windows Manager is regarded as a system software and an efficient platform for Linux as it enables the user to control the placement and appearance of windows and its elements in a Graphic User Interface (GUI) as a windowing System. And it is a part of the desktop environment and improves our interaction with the system.

Finding the best windows manager is totally subjective and depends upon the needs of the user. Windows manager helps to resize and reposition your windows to organize the tools needed for certain tasks. It also steps up the multitasking potential by organizing the windows in a suitable manner with the help of keyboard shortcuts, mouse, or by automation scripts. It also makes the proper use of space on the screen.

Unlike a desktop environment window manager is just one piece of software. Generally speaking, there are two types of windows managers i.e tiling and stacking. Tiling refers to the process that tiles the window around each other and helps in avoiding white spaces whereas stacking refers to a process that stacks windows upon each other or is able to move them anywhere on the screen.

Window manager acts as a display server which is a bridge between Linux kernel and graphical interfaces like KDE plasma, Aqua, and Gnome Shell. Some of the common windows managers for Linux are Awesome, Compiz, Openbox, and i3.

Choosing the best windows manager depends upon individual preference but before knowing the window manager we need to learn about the different desktop environments that can be used in Linux. . However, some of the popular desktop environments are discussed below.

GNOME: GNOME stands for GNU Network Object Model Environment. Metacity is the default window manager for GNOME Environment but it is highly customizable. It supports Custom themes. It has a clean and intuitive interface and offers features like a virtual workspace and a built-in screen recorder. It is regarded as a tiling window manager for everyone.

KDE Plasma: KDE Plasma is one of the desktop Environments out there. It offers a customizable and visually appealing interface. It also provides a range of features like virtual desktops, widgets, and desktop effects. It can also be regarded as a full desktop environment with a window manager built into it.

Xfce: Xfce is a lightweight and fast desktop environment used in Linux. It is ideal for low-spec systems and offers a simple and interactive interface. It gives the desktop environment which also helps to get creative and productive at work. It is a free and open-source window manager that works with its own desktop environment.

Now, we knew about the popular desktop environment used in Linux, we can learn about some of the popular windows managers associated with them. Some of them are

Awesome: Awesome is an open-source tiling window manager built using Lua programming language. Therefore, it is highly customizable for developers as well as users. It has evolved into a full-fledged Linux window manager. It offers simple and fast window management. . It also uses the XCM library instead of XLIB which helps to control latency in our system.

DWM: DWM stands for Dynamic Window Manager. It is simple yet effective having a minimal user interface. For this reason, it can be said to a better than other tiling window managers such as Awesome and xmonad. However, there is no configuration file, so it might be a little complicated for some users.
I3: i3 is a manual window manager that is of tiling type. It was built using the C programming language. It is highly customizable as it features different window organization settings to modify elements. It can be configured via plain text.

Xmonad: Xmonad is a free, open-source dynamic tiling window manager for Linux. It was built using Haskell programming language. It can be personalized using the configuration file. It automates most of the window arrangements for the users.

IceWM:
IceWM is also a free stacking window manager for Linux. It was built using C++ programming language. It is suitable for lightweight machines as it is minimalistic and it also doesn’t compromise on essential features, usability, and customizability. It uses plain text to configure and customize the features.

SpectrWM: SpectrWM is a small, dynamic reparenting and tiling window manager built. It has features similar to Xmonad and DWM. Therefore, it is fast, concise, and compact. In it, we can edit and reload configuration when loading the program and can see the configuration files without logging out from the system.

Fluxbox: Fluxbox is a free and open-source window manager licensed under MIT. It is built using C++ programming language. It is lightweight and therefore it is fast and responsive. It is one of the best window managers because of the above-mentioned reasons.

HerbstluftWM: HerbstluftWM is another free and open-source window manager. It is highly configurable and uses Glib and Xlib. It is based on splitting frames into subframes which can be split further and filled with windows. Therefore, it makes good use of the screen.

Tmux: tmux is another free, open-source window manager. It is a terminal multiplexer where we can create multiple terminal sessions that we can access and control from a single screen. Here, we can also share our shell instance between different sessions for multiple use cases.

Qtile: Qtile is an open-source, fully featured, and hackable tiling window manager. It is built and configured using Python. It is a window manager that is simple to use, extensible, and highly customizable. The Qtile has a lot of features which include custom layouts, built-in commands, and widgets. In addition to these, here you can script it remotely to set up workspaces, manipulate windows or update status bar widgets.

Enlightenment:
Enlightenment is a window manager that provides an appealing, and modern design to the windows or display. The benefit of using this is that you don’t need to learn or know any programming language to set up the environment. It is also called as a desktop environment distinguished as a window manager.

JWM: JWM stands for Joe’s Window Manager. It is an open-source lightweight window manager. It is built using c programming language and therefore, it is highly optimized to work well even on older or less powerful computers. By default, it can run on only the Xlib library but it can be customized to work with other libraries such as libXext for shape extension, libjpeg for JPEG backgrounds and icons, libpng PNG backgrounds and icons, Cairo and libRSVG for icons and backgrounds, and many more.

Sway: Swayis a free, open-source, and lightweight tiling window manager. It is Wayland i3-compatible and automatically arranges application windows to maximize screen space. By default, it organizes windows into a grid. However, you can organize application windows vertically, horizontally, stacked, or tabbed. You can also change the size of windows or split windows into containers of several windows. Other features such as support for keyboard shortcuts, its usage of Wayland instead of Xorg, and gaps. It supports a majority of the commands included in Wayland i3.

Ratpoison: Ratpoison is a free, open-source lightweight Window Manager. The project was designed aims to build a simple program with minimal graphics and window decorations. Instead, it is modeled after the GNU Screen that gained its popularity in the virtual terminal community. Its advanced features include split windows that you can organize into non-overlapping frames. You can also maximize all windows within each frame. Moreover, Ratpoison is solely operated using keyboard commands.

Windows managers are as important as other system software for the smooth workflow and interaction with the system making you more productive. They can be a boon for those who interact with several apps and several display screens. But, we have to take into consideration of display environment before choosing the window manager. A majority of window manager offers similar features but the difference is only in the interaction with the user.

If you are getting started with using window manager, I recommend you the best choice would be i3 or xmonad as they are fast and minimal in design and offer a lot of features for productivity.

As I have mentioned above, the choice of windows manager is totally subjective so I recommend you try all of them and use only those that suit your needs. And the most important thing to consider while choosing a window manager is your Desktop Environment and your personal preferences.

Personally speaking, my favorite is Qtile as it supports python programming language for a lot of customization options. But your favorite might be another. So, try it and find out your favorite window manager.

Top comments (0)