Tiling Window Managers are Simply Better
Tags: i3wm, i3, linux, tilingwm
Published: 2021-01-25 19:42:17

I have been using Linux for quite a while now, but I was not satisfied with the default desktop environment choices available. Earlier I used XFCE as it was reasonably efficient, but then I found i3wm, and it completely changed my workflow.

## Compositing VS Tiling Window Managers
Compositing Window Managers, used in Microsoft Windows, OSX, Gnome, and KDE are the most popular Window Managers. They are based on the desktop metaphor that allows each program to be resized, reshaped, and overlapped. In contrast, a tiling window manager is more like a drawing board divided into non-overlapping blocks where windows are displayed.

## i3 Window Manager
Some famous tiling window managers are i3wm, awesome, xmonad, etc. I have tried many tiling wm and settled on i3wm as it is the best mix of simplicity and customizability. You can configure it by editing plain text files. There is no need to write it in some new language and then compile it for every little change in your configuration.

I love i3wm for a lot of reasons, and the first is that it’s very fast and lightweight and it does not hog down on system resources like other traditional desktop environments.

![My i3wm setup](https://dev-to-uploads.s3.amazonaws.com/i/x5tay3kxf1sz0amtepoq.png)

## Extensive Keyboard Bindings
i3wm uses keyboard shortcuts for different aspects of the environment. These include opening the terminal and other programs, resizing and positioning windows, changing layouts and workspaces, everything.

When you start using i3, you need to memorize a few of those shortcuts to get around and, with time, you will use more of them. I have mapped all the apps I use daily to keyboard shortcuts. A few of them are:

- `<SUPER> + Enter` for Terminal
- `<SUPER> + Shift + Enter` for File Explorer
- `<SUPER> + D` for application menu and so on…

I don’t have to move my hand away from the keyboard to the mouse, increasing my productivity. I rarely use a mouse now. With a terminal text editor(Vim) and keyboard-based web browser(qutebrowser), I can do everything without lifting my fingers from the home row. I cannot see myself going back to a traditional desktop environment.

## Workspace Support
i3wm has support for workspaces, you can put the browser on one workspace, the terminal on another, an email client on a third, etc. You can even change the configuration to assign specific applications to particular workspaces and quickly switch between them, which makes workspaces a very useful feature. You can switch workspaces easily, just press `<SUPER>+num` to go to workspace num.

## Customizability
i3 is fully configurable, and you can control every aspect of it by updating the default configuration file. From changing all keyboard shortcuts to redefining the name of the workspaces, to modifying the status bar, you can make i3 behave in any way that makes the most sense for your needs. Check out r/unixporn subreddit where users post their riced desktop setups. Here is one such [post](https://www.reddit.com/r/unixporn/comments/kycknt/i3gaps_spaceduck_3/)

![Riced i3wm](https://dev-to-uploads.s3.amazonaws.com/i/g2qrth1pomtvm95r0vsu.png)

## My Thoughts
I will be honest. It takes a while to get used to a tiling wm. It does pretty much nothing on its own. You have to dive into the configuration to make it usable. It doesn’t even allow you to use volume and brightness keys. You need to search on the internet and add a few lines to your config file to make it work. Setting up a wallpaper, screenshot shortcut, almost everything needs to be configured. But Arnav, you may ask, why does it not give these functionalities itself like other desktop environments? And this itself is its beauty! You are not bound to some app the Window Manager has forced upon you, but you can choose yourself according to your liking from tens, if not hundreds of different options available.  
It may be hard at first, but once you configure everything you need, it just works, looks great, and is the best thing in the world, and you don’t want to go back to a traditional desktop environment.  


You can find my configs [here](https://github.com/arnav127/configs/tree/main/.config/i3).  
The [i3wm documentation](https://i3wm.org/docs/) is a great resource when you are facing any issues.