i3 window manager

I have been using the i3 window manager on my main computer for approximately one month now. I switched over from the cinnamon desktop environment with the muffin window manager. The change was quite drastic as cinnamon feels like it is built to be used with the mouse, whill i3 is best used with only the keyboard. The reason I decided to change was that I became more and more frustrated with cinnamon doing things in the background as well as wanting to reduce the RAM that was used. On cinnamon, firefox would crash every other day whenever the RAM and swap filled up.

My first days with i3 were a bit slow as I struggled to figure out how to use it effectively. In Cinnamon I had all of my windows open in a single workspace except for thunderbird which I had in a separate workspace. It became clear that the best way to use i3 was to have dedicated workspaces for certain tasks and windows. I decided to make six default workspaces with the following purposes:

Most of my work is done in workspaces 1,2 and 4. Having these dedicated workspaces has definitely improved my workflow as before I spent a lot of time alt-tabbing around to get to the desired window, while now I can easily switch back to emacs even if I’ve been looking through five different pdfs.

The way i3 handles multiple monitors is also preferable to Cinnammon. In cinnamon, when using two monitors, they were both the same workspace, so switching to a different workspace moved both monitors. This behaviour was annoying as I am usually working on one of the monitors so if I switch to a different workspace I’d like to keep the other monitor the same. In i3 the monitors are independent, and there is a shortcut you can setup to move workspaces from one monitor the the other. I have most of my workspaces set up on my main monitor except for the music and file browser as I like to keep these open on my second monitor while doing work on the first. When plugging a hdmi cable in or out, i3 does not automatically detect the new monitor, this can possible be set up, however I implemented a shortcut (super+m) which uses xrandr to detect and update the monitor layout. I still need to find a way to automatically move the workspaces to their monitors when doing this.

Since Cinnamon is a full desktop environment, I did have to figure out how to set up certain other things such as the ssh agent and autostart processes. But on the whole I am surpised how many extra things I need beyond the window manager. This also shows in the RAM usage as after startup, without opening anything, the system uses about 700mb of RAM, it also rarely goes above 6gb of RAM usage. This is a big improvement over Cinnamon which would startup with 1.5gb of RAM.

I also replaced the default i3 status bar with i3blocks which looks neater and allows me to easily put org-mode timers in the status bar.

Overall I am very satisfied by the simplicity and of i3wm and the modifications it allows. I am sure there is still a lot more it can do that I haven’t found out about yet. I look forward to using it more.